# 문제
https://school.programmers.co.kr/learn/courses/30/lessons/68644#qna
정수 배열 numbers가 주어집니다.
numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
# 풀이 (자바)
import java.util.TreeSet;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = {};
TreeSet<Integer> num = new TreeSet<Integer>();
for (int i = 0 ; i < numbers.length; i++) {
for (int j = i+1; j < numbers.length; j++) {
num.add(numbers[i] + numbers[j]);
}
}
answer = num.stream().mapToInt(i -> i).toArray();
return answer;
}
}
#느낀점
처음에는 ArrayList 를 썼다가, HashSet 을 썼다. 그러다가 sort 를 하면서, add 와 동시에 sort 를 해주는 TreeSet 이라는 게 있더라...!
그리고 찾아보니 그 외에도 내가 모르던 자료구조가 있었다. 오늘은 자료구조에 대해서 더 공부해야겠다는 생각이 들었다. 자료구조에 대해서는 블로그에 정리해서 올릴 예정이다!
'𝑪𝒐𝒅𝒊𝒏𝒈 𝑻𝒆𝒔𝒕' 카테고리의 다른 글
[프로그래머스] 쿼드압축 후 개수 세기 (0) | 2022.10.22 |
---|---|
[프로그래머스] 삼각 달팽이 (0) | 2022.10.19 |
[프로그래머스] 3진법 뒤집기 (0) | 2022.10.16 |
[프로그래머스] 약수의 합 (0) | 2022.10.13 |
[프로그래머스] 소수 만들기 (0) | 2022.06.01 |