CS & Algorithm(26)
-
[Codility] OddOccurrencesInArray
https://app.codility.com/c/run/trainingQ4R62N-U5Z/ CodilityYour browser is not supported Please, update your browser or switch to a different one. Learn more about what browsers are supportedapp.codility.com 접근 방식같은 값이 두 번 등장하면 짝이 맞으니까 사라지고, 홀수 번 등장하는 값만 마지막에 남기는 방식으로 풀이List나 HashSet을 이용하여 해결! 배열을 왼쪽부터 오른쪽까지 순회하면서 원소를 하나씩 확인어떤 값 x를 처음 만났을 때는 아직 짝이 없다는 의미이므로 저장같은 값 x를 두 번째로 만나면 짝이 맞았다는 의미이므로 저장했..
2025.11.22 -
[Codility] CyclicRotation
https://app.codility.com/c/run/trainingY84P8Z-PRG/ CodilityYour browser is not supported Please, update your browser or switch to a different one. Learn more about what browsers are supportedapp.codility.com 접근 방식배열을 오른쪽으로 K번 회전시키는 문제로 “단순히 K번 반복해서 배열을 밀어내는 방식”은 비효율적! 인덱스 수학 공식으로 해결 가능 newIndex = (i + K) % N기존 배열을 수정하지 않고, 새로운 배열을 만들어서 해당 배열에 인덱스에 맞는 값을 할당나의 풀이 코드public int[] solution(int[] A, ..
2025.11.22 -
[프로그래머스] 68644. 두 개 뽑아서 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/68644 접근 방식서로 다른 조합을 만들기 위해 numbers[i], numbers[j] 이중 for문 사용j를 항상 i + 1에서 시작하도록 설정하여 같은 인덱스를 두 번 선택하는 경우(i == j)를 막고(a, b)와 (b, a)처럼 순서만 다른 중복 조합이 생성되지 않도록 처리 생성된 합은 Set에 넣어 중복 제거 Set에 모인 값들을 꺼내 오름차순 정렬된 int 배열로 변환하여 반환나의 풀이 코드import java.util.*;class Solution { public int[] solution(int[] numbers) { int numberCount = numbers.l..
2025.11.20 -
[프로그래머스] 42748. K번째수
https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=java 문제 설명주어진 배열 array와, 각 [i, j, k]로 이루어진 commands 배열이 있을 때array의 i번째부터 j번째까지 자르고, 정렬한 뒤, k번째 숫자를 선택하여 결과 배열로 반환 접근 방식commands 배열을 하나씩 순회한다array에서 i번째 ~ j번째까지 잘라 새로운 배열 생성int start = commands[i][0] - 1; // 0-based 변환int end = commands[i][1]; // end는 포함되지 않음int[] sliced = Arrays.copyOfRange(array, start, end); 3. 잘라낸..
2025.11.20 -
[Codility] BinaryGap
https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ 문제 설명Binary gap은 어떤 양의 정수 N을 2진수로 표현했을 때, 양쪽이 1로 둘러싸인 연속된 0들의 구간 중 “최대 길이”를 의미한다. 예시 N = 92진수: 10011001 → 길이 2인 binary gap 하나N = 5292진수: 10000100011000010001 → 길이 4, 길이 3인 gap 두 개 → 최대값 4N = 202진수: 10100 10100 → 가운데 0은 길이 1짜리 gap, 마지막 00은 오른쪽에 1이 없어서 gap 아님N = 152진수: 11110이 없으므로 gap 없음 (0)N = 322진수: 100000100000 → 1로 닫히지 않은 0..
2025.11.20 -
[코테 개념 정리] Sorting Algorithm : 정렬 알고리즘
이번 게시글에서는 코딩 테스트에서 아주 빈번하게 등장하는 정렬 알고리즘(Sorting Algorithm)에 대해 정리해보려고 합니다. 정렬 알고리즘은 단순히 숫자나 문자열을 오름차순/내림차순으로 정리하는 기능을 넘어서,데이터 전처리, 탐색 속도 향상, 우선순위 처리, 중복 제거, 패턴 분석 등 거의 모든 알고리즘 문제의 기반이 되는 핵심 개념입니다. 특히 코딩 테스트에서는 문제 의도와 상관없이일단 데이터를 정렬한 뒤에 시작하는 문제가 굉장히 많기 때문에 정렬 알고리즘을 이해해두면 문제 접근 속도 자체가 달라집니다. 정렬 알고리즘이란? 정렬 알고리즘은 데이터를 특정 기준(예: 오름차순, 내림차순, 문자열 길이, 특정 key 값 등)에 따라 재배치하는 알고리즘정렬은 데이터 구조나 알고리즘이 본격적으로 시작되..
2025.11.20