import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
Set<Integer> temp = new HashSet<>();
for(int i=0; i<numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
temp.add(numbers[i]+numbers[j]);
}
}
List temp2 = new ArrayList(temp); //HashSet->List
Collections.sort(temp2);
int[] answer = new int[temp2.size()];
for(int i=0; i<temp2.size(); i++){
answer[i] = (int)temp2.get(i);
}
return answer;
}
}
numbers의 길이 최대가 100이므로, 완전탐색으로 해도 시간초과가 나지 않는다.
1. 완전탐색을 통해 두 개의 수의 합이 될 수 있는 모든 경우를 구한다.
2. 이때 중복은 제외해야 하므로, HashSet으로 저장한다.
3. 오름차순 정렬을 하기위해서, HashSet -> List 로 바꾸어준다.
4. Collections.sort()로 오름차순 정렬한다.
5. answer에 값을 넣어준다.
'1d-1c > Programmers' 카테고리의 다른 글
Level1_모의고사 (JAVA) (0) | 2020.11.02 |
---|---|
Level1_예산 (JAVA) (0) | 2020.11.02 |
Level1_크레인 인형뽑기 게임 (JAVA) (0) | 2020.10.31 |
Level1_완주하지 못한 선수 (C++) (JAVA) (0) | 2020.10.31 |
Level1_K번째 수 (JAVA) (0) | 2020.10.31 |