알고리즘 문제/프로그래머스
[프로그래머스 - Java] 두 개 뽑아서 더하기(월간 코드 챌린지 시즌1)
건복치
2020. 9. 22. 22:39
반응형
문제
programmers.co.kr/learn/courses/30/lessons/68644
코드
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
HashSet<Integer> set = new HashSet<>(); // 중복 없게 하기 위해 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]);
}
}
ArrayList<Integer> list = new ArrayList<>(set); //Set을 문제가 원하는 Array로 바꾸는 과정
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
Set을 Array로 바꾸는 저 7줄의 코드를
return set.stream().sorted().mapToInt(Integer::intValue).toArray();
이렇게 한방에 쓸 수 있다;;;; 프로그래머스에서 다른 사람의 풀이에서 봄ㅠㅠ
stream 공부해야겠다.
반응형