본문 바로가기
728x90
반응형

CodeSignal66

sudoku2 주어진 그리드가 유효한 스도쿠 퍼즐인지 확인하는 알고리즘을 구현해야 합니다. 스도쿠 퍼즐은 9 × 9 그리드에 1부터 9까지의 숫자를 중복되지 않게 채워넣는 것이 목표입니다. 각 행, 각 열, 그리고 3 × 3 크기의 서브 그리드(총 9개)에는 1부터 9까지의 숫자가 한 번씩만 나타나야 합니다. bool solution(char[][] grid) { HashSet rows = new HashSet(); HashSet cols = new HashSet(); HashSet subs = new HashSet(); for(int i = 0;i 2024. 3. 6.
rotateImage 주어진 2D 행렬을 90도 시계 방향으로 회전시키는 문제 추가적인 메모리를 O(1)만 사용하여 풀어야 합니다. 여기서는 주어진 행렬을 원래의 행렬에 덮어씌우면서 회전을 진행하는 방법을 사용할 수 있습니다. 이를 위해서는 주어진 행렬을 다음과 같이 네 단계로 나눠서 회전시킬 수 있습니다: 주어진 행렬을 대각선을 기준으로 대칭시킵니다. 행렬의 각 행을 뒤집습니다. int[][] solution(int[][] a) { int n = a.Length; for(int i = 0;i 2024. 2. 28.
firstNotRepeatingCharacter 주어진 문자열에서 첫 번째로 등장하는 반복되지 않는 문자를 찾는 것입니다. 즉, 문자열에서 한 번만 등장하는 문자를 찾아야 합니다. 만약 이러한 문자가 없다면 '_'를 반환해야 합니다. 예를 들어, 문자열 "abacabad"에서는 'c'와 'd'가 두 번 등장하지 않으므로 두 문자 중 첫 번째로 등장하는 'c'를 반환해야 합니다. 문제의 구체적인 설명은 다음과 같습니다: 주어진 문자열 s는 소문자 영어 알파벳으로만 구성됩니다. 문자열의 길이는 1에서 10^5 사이입니다. 첫 번째로 등장하는 반복되지 않는 문자를 찾아 반환합니다. 만약 이러한 문자가 없다면 '_'를 반환합니다. char solution(string s) { Dictionary dic = new Dictionary(); foreach(cha.. 2024. 2. 27.
Count Sum of Two Representations 2 주어진 정수 n을 두 정수 A와 B의 합으로 나타낼 때, A와 B가 주어진 범위 [l, r]에 속하는 경우의 수를 찾는 것입니다. 주어진 범위 [l, r] 내에서 A와 B를 선택하여 n을 만드는 경우의 수를 구하는 방법은 다음과 같습니다: A를 l부터 r까지 선택합니다. 선택한 A에 대해 B를 선택합니다. B는 A보다 같거나 크면서, n - A보다 작거나 같은 범위여야 합니다. 즉, B는 max(A, n - A)부터 r까지 선택 가능합니다. 선택한 A와 B에 대해 n = A + B를 만족하는 경우의 수를 세어줍니다. def solution(n, l, r): count = 0 for A in range(l,r+1): if n - A >= A and n- A 2024. 2. 26.
Kill K-th Bit 주어진 수의 이진 표현에서 특정 위치의 비트를 변경하는 것입니다. 특히, 주어진 수 n의 이진 표현에서 오른쪽에서 k번째 비트가 0으로 설정되어 있었지만, 현재 그 값이 다를 수 있습니다. 이 비트를 다시 0으로 변경하는 함수를 작성해야 합니다. 예를 들어, n = 37이고 k = 3인 경우, 주어진 수의 이진 표현은 100101입니다. 이때, 3번째 비트를 0으로 변경하면 100001이 되어 10진수로는 33이 됩니다. def solution(n, k): return n & ~(1 2024. 2. 22.
Tennis Set 두 테니스 선수의 점수가 주어졌을 때, 경기가 끝났을 때 한 선수가 승리하는지 여부를 판단하는 것입니다. bool solution(int score1, int score2) { int maxScore = Math.Max(score1, score2); int minScore = Math.Min(score1, score2); // 한 선수가 6점을 얻고 다른 선수가 4점 이하인 경우, 한 선수가 승리 if (maxScore == 6 && minScore = 5 && minScore 2024. 2. 20.
Late Ride 자전거 타이머를 통해 경과된 시간을 이용하여 현재 시간을 계산하고, 계산된 시간의 시각 표시 형식인 "hh:mm"의 각 자리 숫자를 모두 더하는 것입니다. 주어진 정수 n은 자전거 타이머를 통해 경과된 시간(분)을 나타냅니다. 이를 이용하여 현재 시간을 계산하고, "hh:mm" 형식으로 표시한 뒤 각 자리 숫자를 더하면 됩니다. 예를 들어, n이 240일 때, 240분 후에는 현재 시간이 04:00이므로, 각 자리 숫자를 더하면 0 + 4 + 0 + 0 = 4가 됩니다. 이것이 반환해야 하는 정답입니다. n이 808일 때, 808분 후에는 현재 시간이 13:28이므로, 각 자리 숫자를 더하면 1 + 3 + 2 + 8 = 14가 됩니다. 이것이 반환해야 하는 정답입니다. int solution(int n).. 2024. 2. 6.
728x90
반응형