반응형
문제
정수 배열 numbers에서 서로 다른 인덱스의 두 수를 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하는 solution 함수를 만드시오.
▶ 입출력 예
numbers | result |
[2, 1, 3, 4, 1] | [2, 3, 4, 5, 6, 7] |
[5, 0, 2, 7] | [2, 5, 7, 9, 12] |
해법
본 문제는 중복이 제거되는 HashSet과 정렬이 가능한 ArrayList를 이용하여 구현합니다.
1. 서로 다른 인덱스 끼리 더하여 HashSet에 저장한다. (중복제거)
2. ArrayList에 HashSet를 저장한다.
3. ArrayList를 정렬한다.
import java.util.*;
public static int[] solution(int[] numbers) {
ArrayList<Integer> list = new ArrayList<Integer>();
HashSet<Integer> set = new HashSet<Integer>();
// 인덱스 끼리 더한 값을 중복제거 하면서 set에 저장.
for(int i = 0; i < numbers.length - 1; i++) {
for(int j = i+1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
list.addAll(set);
// 오름차순 => ArrayList
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
반응형
'JAVA' 카테고리의 다른 글
[Java] Coding Test (예산) (0) | 2022.08.11 |
---|---|
[Java] Coding Test (크레인 인형뽑기 게임) (0) | 2022.08.09 |
[Java] Coding Test (Lotto) (0) | 2022.08.04 |
[Java] Annotation (0) | 2022.08.04 |
[Java] enum(열거형) (0) | 2022.08.03 |