[코딩테스트] 두 개 뽑아서 더하기

한지연·2023년 5월 27일
0

문제 설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

입출력 예

numbers			result
[2,1,3,4,1]		[2,3,4,5,6,7]
[5,0,2,7]		[2,5,7,9,12]

입출력 예 설명

입출력 예 #1

2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)
3 = 2 + 1 입니다.
4 = 1 + 3 입니다.
5 = 1 + 4 = 2 + 3 입니다.
6 = 2 + 4 입니다.
7 = 3 + 4 입니다.
따라서 [2,3,4,5,6,7] 을 return 해야 합니다.

문제 풀이

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        Set<Integer> numSet = new HashSet<>();
        
        for(int i=0; i<numbers.length; i++){
            for(int j=0; j<numbers.length; j++){
                if(i==j) continue;
                
                numSet.add(numbers[i]+numbers[j]);
            }
        }
        
        int[] answer = numSet.stream().mapToInt(Integer::intValue).toArray();
        
        Arrays.sort(answer);
        
        return answer;
    }
}

실행 속도

profile
배우고 활용하는 것을 즐기는 개발자, 한지연입니다!

0개의 댓글