코딩테스트/Programmers

[프로그래머스] 두 개 뽑아서 더하기

grove1212 2025. 2. 28. 14:03

TreeSet을 적절하게 사용할 줄 아는가?

 

1. 초기 버전 코드

다른 사람들 코드 훔쳐보는데 TreeSet 사용하면 정렬도 같이 된다는 말에 아맞다! 그게있었지! 했다. 그래서 코드를 리팩토링 해보았다.

import java.util.*;
import java.util.stream.*;

class Solution {
    public int[] solution(int[] numbers) {
        Set<Integer> set = new HashSet<>();
        
        for(int i = 0; i< numbers.length - 1; i++){
            for(int j = i + 1; j < numbers.length ;j++){
                set.add(numbers[i] + numbers[j]);
            }
        }
        
        List<Integer> list = new ArrayList<>(set);
        
        Collections.sort(list);
        
        return list.stream().mapToInt(i -> i).toArray();
    }
}

 

2. 두 번째 코드

import java.util.*;
import java.util.stream.*;

class Solution {
    public int[] solution(int[] numbers) {
        Set<Integer> set = new TreeSet<>();
        
        for(int i = 0; i< numbers.length - 1; i++){
            for(int j = i + 1; j < numbers.length ;j++){
                set.add(numbers[i] + numbers[j]);
            }
        }
        
        return set.stream().mapToInt(i -> i).toArray();
    }
}

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/68644