본문 바로가기
728x90
반응형

CodeSignal66

reverseInParentheses 주어진 문자열에서 괄호로 묶인 부분의 문자열을 뒤집는 함수를 작성하는 문제입니다. 주어진 문자열은 항상 괄호가 올바르게 매치되어 있다고 가정됩니다. 스택을 사용하여 괄호의 시작과 끝을 추적하면서 문자열을 뒤집을 수 있습니다. string solution(string inputString) { char[] ch = inputString.ToCharArray(); Stack stack = new Stack(); int start = 0; int end = 0; for(int i = 0;i 2023. 12. 3.
alternating Sums 주어진 배열을 두 팀으로 나누고, 각 팀의 총 무게를 계산하는 것입니다. 배열의 첫 번째 요소는 팀 1로, 두 번째 요소는 팀 2로, 세 번째 요소는 다시 팀 1로, 네 번째 요소는 팀 2로, 이와 같이 번갈아가며 팀이 구성됩니다. 예를 들어, 주어진 배열이 [50, 60, 60, 45, 70]이라면: 첫 번째 사람(50)은 팀 1에 속하므로, 팀 1의 무게는 50이 됩니다. 두 번째 사람(60)은 팀 2에 속하므로, 팀 2의 무게는 60이 됩니다. 세 번째 사람(60)은 다시 팀 1에 속하므로, 팀 1의 무게는 50 + 60 = 110이 됩니다. 네 번째 사람(45)은 다시 팀 2에 속하므로, 팀 2의 무게는 60 + 45 = 105이 됩니다. 다섯 번째 사람(70)은 다시 팀 1에 속하므로, 팀 1의.. 2023. 12. 3.
Sort by Height 주어진 배열 a에서 값이 -1이 아닌 요소들을 오름차순으로 정렬하되, -1인 요소들은 원래 위치에 그대로 남겨두어야 하는 문제입니다. 예를 들어, 주어진 배열이 [-1, 150, 190, 170, -1, -1, 160, 180]인 경우, -1이 아닌 숫자들을 오름차순으로 정렬하면 [150, 160, 170, 180, 190]이 됩니다. 이제 이 숫자들을 원래 배열의 -1이 아닌 위치에 삽입해야 합니다. 따라서 결과적으로는 [-1, 150, 160, 170, -1, -1, 180, 190]이 되어야 합니다. 이러한 문제를 해결하기 위해서는 다음과 같은 과정을 거칩니다: 배열에서 -1이 아닌 숫자들을 추출하고 정렬합니다. 원래 배열의 각 위치에 -1이 아닌 숫자들을 순서대로 삽입합니다. int[] solut.. 2023. 12. 2.
isLucky 주어진 티켓 번호 n이 행운의 번호인지 여부를 판단하라고 합니다. 여기서 행운의 번호는 다음과 같이 정의됩니다: 티켓 번호는 일반적으로 짝수 자릿수로 이루어져 있습니다. 티켓 번호를 반으로 나눈 경우, 첫 번째 반과 두 번째 반의 각 자릿수 합이 서로 같아야 합니다. 예를 들어, 123006은 행운의 번호입니다. 왜냐하면 1+2+3이 0+0+6과 같기 때문입니다. 티켓 번호 n이 주어졌을 때, 이 번호가 행운의 번호인지 아닌지를 판단하는 것이 문제의 목표입니다. bool solution(int n) { int[] ch = new int[6]; int rest = n; int idx = 0; while(rest>0){ ch[idx++] = (rest%10); rest /= 10; } int front = .. 2023. 12. 1.
commonCharacterCount 두 개의 문자열이 주어졌을 때, 두 문자열에서 공통으로 나타나는 문자의 개수를 찾는 문제입니다. 예를 들어, "aabcc"와 "adcaa" 두 문자열이 주어졌을 때, 공통으로 나타나는 문자는 'a'와 'c'이며, 이들의 개수는 각각 2개와 1개입니다. 따라서, 이 경우 함수는 3을 반환해야 합니다. 문제의 목표는 주어진 두 문자열에서 공통으로 나타나는 문자의 총 개수를 계산하는 것입니다. int solution(string s1, string s2) { Dictionary dic1 = new Dictionary(); Dictionary dic2 = new Dictionary(); HashSet hash = new HashSet(); foreach(char c in s1){ if(!dic1.Contains.. 2023. 11. 28.
All Longest Strings 주어진 문자열 배열에서 가장 긴 문자열들을 찾는 문제입니다. 주어진 문자열 배열에서 가장 긴 문자열의 길이를 찾은 다음, 해당 길이와 동일한 길이를 가지는 모든 문자열을 반환해야 합니다. ["aba", "aa", "ad", "vcd", "aba"] 여기서 가장 긴 문자열의 길이는 3입니다. 따라서 결과로는 길이가 3인 모든 문자열을 포함하는 배열이 반환되어야 합니다. 결과는 다음과 같습니다: ["aba", "vcd", "aba"] 가장 긴 문자열의 길이를 찾고, 해당 길이와 동일한 길이를 가지는 모든 문자열을 찾아 반환하는 것이 목표 string[] solution(string[] inputArray) { Dictionary dic = new Dictionary(); List ret = new List(.. 2023. 11. 27.
matrixElementsSum 주어진 2D 행렬에서 유효한 방을 통과하면서 방문한 모든 셀의 값을 합산하는 문제입니다. 다만, 한 번 방문한 행의 아래 층에 있는 방들은 모두 0으로 처리되며, 이후에 방문한 행에 있는 방들만 유효하게 합산됩니다. int matrixElementsSum(int[][] matrix) { int totalSum = 0; int rows = matrix.Length; int cols = matrix[0].Length; for (int col = 0; col < cols; col++) { for (int row = 0; row < rows; row++) { if (matrix[row][col] == 0) { // 만약 현재 열에 0이 등장하면 해당 열 이후의 행들의 값을 무시 break; } // 0이 등장하.. 2023. 11. 25.
728x90
반응형