

나의 풀이
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
List<Integer> list = new ArrayList<>(); // 1
for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
int temp = numbers[i] + numbers[j]; // 2
if (!(list.contains(temp))) list.add(temp); // 3
}
}
Collections.sort(list); // 4
int[] answer = list.stream().mapToInt(i->i).toArray(); // 5
return answer;
}
}
과정
- numbers를 담을 list를 만든다
- numbers안의 두 요소을 더하여 temp를 만든다
- list에 temp가 없다면(!(list.contains(temp))) list에 temp를 넣어준다
- list 오름차순 정렬
- ArrayList를 배열로 바꿔준다 (Java 8 이상에서 스트림으로 Integer배열을 int배열로 변환 가능)
다른 사람 풀이
import java.util.HashSet;
import java.util.Set;
class Solution {
public int[] solution(int[] numbers) {
Set<Integer> set = new HashSet<>();
for(int i=0; i<numbers.length; i++) {
for(int j=i+1; j<numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
return set.stream().sorted().mapToInt(Integer::intValue).toArray();
}
}
- Set 인터페이스를 구현하는 HashSet 객체를 만듬(Set은 중복된 값을 저장하지 않는 특성)