공부하자/알고리즘
[프로그래머스] Lv.1 두 개 뽑아서 더하기 java
snbrin
2022. 4. 22. 14:46
https://programmers.co.kr/learn/courses/30/lessons/68644
문제
정수 배열 numbers. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return하는 함수를 완성하시오.
제한조건
numbers의 길이는 2이상 100이하
numbers의 모든 수는 0이상 100이하
.java
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
//TreeSet생성(오름차순 정렬)
//이진탐색트리로 중복을 허용하지 않음
//오름차순, 중복제거 동시 처리
Set<Integer> ts = new TreeSet<>();
//1.인수 길이만큼 반복
for(int i=0; i<numbers.length; i++){
//1-1.모든 배열값 더하기
for(int j=i+1; j<numbers.length;j++){
ts.add(numbers[i]+numbers[j]);
}
}
//2.array로 변환하여 answer에 저장
int[] answer = ts.stream().mapToInt(Number::intValue).toArray();
return answer;
}
}
실행 결과