티스토리 뷰

[문제]

출처 : https://school.programmers.co.kr
출처 : https://school.programmers.co.kr


[해답]

- Set 자료구조를 이용해 중복값을 제거하는 것이 풀이의 핵심이다.

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Collections;

class Solution {
    public int[] solution(int[] numbers) {
        HashSet<Integer> sets = new HashSet<Integer>();
        for(int i = 0; i < numbers.length; i++) {
            for(int j = i + 1; j < numbers.length; j++) {
                sets.add(numbers[i] + numbers[j]);
            }
        }

        ArrayList<Integer> list = new ArrayList(sets);
        Collections.sort(list);
        
        // 되긴 되는데 리소스랑 시간이 너무 오래 걸림
        // int[] answer = list.stream().mapToInt(Integer::intValue).toArray();
        
        int[] answer = new int[list.size()];
        for(int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        return answer;
    }
}

 

cf) stream을 사용했을 때 코드 가독성은 좋아졌지만 성능은 떨어졌다.

int[] answer = list.stream().mapToInt(Integer::intValue).toArray();

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함