프로그래머스 두 개 뽑아서 더하기문제를 풀면서 자주 쓰일법한 set->array 함수를 만들어놓았다.
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
Set<Integer> s = new HashSet<Integer>();
for(int i = 0; i<numbers.length; i++){
for(int j = i+1; j<numbers.length; j++){
s.add(numbers[i]+numbers[j]);
}
}
int[] answer = setToArray(s);
Arrays.sort(answer);
return answer;
}
public int[] setToArray(Set<Integer> set){
int[] a = new int[set.size()];
int i = 0;
for(Integer val: set)
a[i++] = val;
return a;
}
}
이중 for문을 돌면서 두 수의 합을 set에 add한다.
set을 쓰는 이유는 중복을 허용하지 않는 자료구조이기 때문!
return값은 int형 배열이어야하기 때문에 setToArray()
를 이용해 set을 배열로 만들어준 다음, Array.sort()
해주면 되는 문제다.