두 개 뽑아서 더하기 (자바)

김재현·2023년 11월 17일
0

알고리즘 풀이

목록 보기
19/90
post-thumbnail

문제

정답 코드

import java.util.*;
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]);
            }
        }

       // List<Integer> a = set.stream().sorted().toList();

        List<Integer> sumList = new ArrayList<>(set);

        Collections.sort(sumList);


        int[] answer = new int[sumList.size()];


        for(int i=0;i<sumList.size();i++) {
            answer[i]=sumList.get(i);
        }
        return answer;
    }
}

중복이 허용 안된다는 것을 보고 set을 쓰면 되겠구나 싶었다.

중간에 List a = set.stream().sorted().toList(); 을 쓰려고 했는데, toList()가 자바 버전때문에 사용이 안되어서 풀어서 썼다.

다른 사람의 풀이를 보니, set이 아니라 treeset을 사용했다면 자동으로 sorting되어 더 간단했을 것 같다.

profile
I live in Seoul, Korea, Handsome

0개의 댓글