문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
배열에 있는 2개의 수를 뽑은 합을 구해서 오름차순 정렬하는 문제이다.
ArrayList, 동적 배열을 사용해서 합들을 다 담아서 오름차순 정렬하려고 했으나, 수가 겹칠 수 있는 문제가 존재한다.
[1,1,1] 이라면[2,2,2]가 아니라 [2]가 되어야하기 때문이다.
그래서 정렬을 유지하면서 값을 중복하지 않게 담을 수 있는 자료구조인 TreeSet을 선택했다.
1. TreeSet으로 배열에서 다른 인덱스에서 뽑은 2개의 수를 더한 값을 담는다.
2. set의 크기만큼 배열을 만든다.
3. 배열에 set에 담겨있는 값을 넣는다.
소스코드
import java.util.TreeSet;
class Solution {
public int[] solution(int[] numbers) {
TreeSet<Integer> set = new TreeSet<>();
for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
int[] answer = new int[set.size()];
int idx = 0;
for (int v : set) {
answer[idx++] = v;
}
return answer;
}
}
실행결과

'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] 문자열 나누기 - Java (2) | 2025.08.03 |
|---|---|
| [Programmers] 제일 작은 수 제거하기 - Java (0) | 2025.08.02 |
| [Programmers] 햄버거 만들기 - Java (0) | 2025.07.31 |
| [Programmers] 개인정보 수집 유효기간 - Java (0) | 2025.07.30 |
| [Programmers] 내적 - Java (0) | 2025.07.29 |