코딩테스트(Level 0~1)

[JAVA, Programmers] 두 개 뽑아서 더하기(자바)

justdoIT0730 2022. 11. 29. 17:34
728x90
728x90

1. 문제 설명

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

 

2. 제한사항

 numbers 길이는 2 이상 100 이하입니다.

 

3. 입출력

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

 

4. 입출력 설명

- 입출력 #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 해야 합니다.

 

- 입출력 #2

 2 = 0 + 2 입니다.

 5 = 5 + 0 입니다.

 7 = 0 + 7 = 5 + 2 입니다.

 9 = 2 + 7 입니다.

 12 = 5 + 7 입니다.

 

따라서 [2,5,7,9,12]  return 해야 합니다.

 

5. 풀이

import java.util.*;
import java.util.stream.*;
class Solution {
	public int[] solution(int[] numbers) {
		List<Integer> list = new ArrayList <Integer>();

		for(int i=0; i<numbers.length;i++) {
			for(int y=i+1; y<numbers.length;y++) {
				list.add(numbers[i]+numbers[y]);
			}
		}
		list = list.stream().distinct().collect(Collectors.toList());
		Collections.sort(list);
        
		int [] answer = new int [list.size()];
        
		for(int i=0; i<list.size();i++) {
			answer[i] = list.get(i);
		}
	return answer;
	}
}
728x90
728x90