본문 바로가기
728x90
반응형

CodeSignal66

Elections Winners 선거가 진행 중일 때, 아직 투표하지 않은 유권자 수와 각 후보에게 투표된 득표수가 주어졌을 때, 아직 승리할 수 있는 후보의 수를 찾는 문제입니다. 후보가 이기려면 다른 어떤 후보보다도 더 많은 투표를 받아야 하며, 만약 최다 득표 후보가 여러 명이라면 아무도 승리하지 못한 것으로 간주합니다. 예를 들어, 주어진 예시에서는 투표수가 [2, 3, 5, 2]이고, 아직 투표하지 않은 유권자가 3명(k = 3)입니다. 각 후보의 득표수를 봤을 때, 두 번째 후보가 승리할 수 있는데, 이는 나머지 후보들이 3명의 투표를 모두 받아도 최다 득표자인 5에 미치지 못하기 때문입니다. 따라서 이 경우 정답은 2입니다. int solution(int[] votes, int k) { int max = votes.Max(.. 2024. 1. 1.
buildPalindrome 주어진 문자열에 문자를 덧붙여 회문(palindrome)을 만들 때 가장 짧은 회문을 찾는 것입니다. 회문은 앞으로 읽으나 뒤로 읽으나 동일한 문자열을 의미합니다. 예를 들어, "abcdc"라는 문자열이 주어진다면, 문자를 덧붙여 회문을 만들어야 합니다. 가장 짧은 회문을 만들기 위해서는 문자열을 뒤집은 것을 추가해야 합니다. 따라서 "abcdcba"가 가장 짧은 회문이 됩니다. 문제를 해결하는 방법은 다음과 같습니다: 주어진 문자열을 뒤집은 문자열을 찾습니다. 뒤집은 문자열과 주어진 문자열의 공통 접두사를 찾습니다. 주어진 문자열에서 이 공통 접두사 이후의 부분을 뒤집은 문자열에서 추가합니다. string solution(string st) { char[] reversedCharArray = st.To.. 2023. 12. 31.
isBeautifulString 문자열이 "beautiful"한지 여부를 판단하는 것입니다. 여기서 "beautiful"한 문자열이란, 각 문자가 알파벳 순서대로 이전 문자보다 더 자주 나타나지 않는 경우를 의미합니다. 예를 들어, 'b'는 'a'보다 더 자주 나타나면 안 되고, 'c'는 'b'보다 더 자주 나타나면 안 되는 식입니다. 문자열은 소문자 알파벳으로 이루어져 있습니다. 문자열의 길이는 최소 3이며 최대 50입니다. 예를 들어, "bbbaacdafe"와 같은 문자열은 beautiful한 문자열이지만, "aabbb"나 "bbc"와 같은 문자열은 beautiful하지 않습니다. 문제의 목표는 입력 문자열이 beautiful한지 여부를 판단하여 true 또는 false를 반환하는 것입니다. bool solution(string i.. 2023. 12. 31.
Bishop and Pawn 표준 체스 보드에서 흰 비숍(white bishop)이 검은 폰(black pawn)을 한 번의 이동으로 잡을 수 있는지 여부를 판단하는 문제입니다. 비숍은 대각선으로만 움직일 수 있습니다. 문제의 입력은 두 개의 문자열 bishop와 pawn으로 주어지는데, 각각은 체스 보드의 좌표를 나타냅니다. 좌표는 문자와 숫자의 조합으로 이루어져 있으며, 문자는 'a'부터 'h'까지의 알파벳이고, 숫자는 1부터 8까지의 정수입니다. 예를 들어, "a1"은 첫 번째 열의 첫 번째 행을 나타내고, "c3"은 세 번째 열의 세 번째 행을 나타냅니다. 문제의 목표는 비숍이 한 번의 이동으로 폰을 잡을 수 있는지 여부를 판단하여 true 또는 false를 반환하는 것입니다. 예를 들어, "a1" 위치의 비숍이 "c3" 위.. 2023. 12. 30.
digitDegree 어떤 양수 정수의 "digit degree(자릿수 차수)"를 찾는 문제입니다. 여기서 digit degree란 해당 수를 그 자릿수의 합으로 대체하여 한 자리 수에 도달할 때까지 몇 번이나 반복해야 하는지를 나타냅니다. 예를 들어, n = 5일 때, 이미 한 자리 수이므로 0번의 대체가 필요하므로 결과는 0입니다. n = 100일 때는 1 + 0 + 0 = 1이 되므로 1번의 대체가 필요하며, n = 91일 때는 9 + 1 = 10이 되고, 다시 1 + 0 = 1이 되므로 2번의 대체가 필요합니다. 이 문제의 목표는 어떤 수에 대해 digit degree를 찾아내는 함수를 작성하는 것입니다. 함수명이 solution으로 주어지며, 예를 들어 solution(5)는 0, solution(100)은 1, s.. 2023. 12. 30.
longestDigitsPrefix 문자열에서 숫자만으로 이루어진 가장 긴 접두사를 찾는 문제입니다. 주어진 문자열에서 처음부터 숫자가 나오기 시작하면서 숫자로만 이루어진 부분을 찾으면 됩니다. string solution(string inputString) { List list = new List(); foreach(char c in inputString){ if(c 2023. 12. 30.
arrayMaxConsecutiveSum 주어진 배열 inputArray와 정수 k에 대해, 배열에서 연속된 두 요소의 합 중에서 가장 큰 값을 찾아 반환하는 문제입니다. 예를 들어, inputArray = [2, 3, 5, 1, 6]이고 k = 2이면, 연속된 두 요소의 합은 다음과 같습니다: 2 + 3 = 5 3 + 5 = 8 5 + 1 = 6 1 + 6 = 7 따라서, 가장 큰 합은 8입니다. int solution(int[] inputArray, int k) { int sum = 0; // 초기 합 계산 for (int i = 0; i < k; i++) { sum += inputArray[i]; } // 이후 합 계산 int currentSum = sum; for (int i = k; i < inputArray.Length; i++) {.. 2023. 12. 24.
728x90
반응형