티스토리 뷰

programmers.co.kr/learn/courses/30/lessons/68644

 

코딩테스트 연습 - 두 개 뽑아서 더하기

 

programmers.co.kr

 

 

 

 

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        Arrays.sort(numbers);
        
        Deque<Integer> list = new ArrayDeque<>();
        
        for(int i=0; i<numbers.length; i++) {
            int tmp = numbers[i];
            
            for(int j=i+1; j<numbers.length; j++) {
                int sum = tmp + numbers[j];
                
                if(!list.contains(sum))
                    list.add(sum);
            }
        }
        
        int[] answer = new int[list.size()];
        for(int i=0; i<answer.length; i++) {
            answer[i] = list.remove();
        }
        
        Arrays.sort(answer);
        
        return answer;
    }
}

 

 

Set 사용

import java.util.*;

class Solution {
    public Integer[] solution(int[] numbers) {
        Arrays.sort(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]);
            }
        }
        
        Integer[] answer = new Integer[set.size()];
        set.toArray(answer);
        Arrays.sort(answer);
        
        return answer;
    }
}
최근에 올라온 글
«   2024/07   »
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
Total
Today
Yesterday