정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
❗제한 사항
◾ numbers의 길이는 2 이상 100 이하입니다.
◽ numbers의 모든 수는 0 이상 100 이하입니다.
numbers | result |
---|---|
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
배열의 모든 원소를 한번씩 더해 준 값을 data
배열에 넣어 주고 더해준 값이 중복될 수 있기 때문에 중복되는 값을 set
함수를 사용하여 중복을 지워주었다.
function solution(numbers) {
let answer = 0;
const data = [];
let sum = 0
for(i= 0 ; i < numbers.length-1 ; i++){
for(j=i+1 ; j <numbers.length ; j++){
sum = numbers[i]+numbers[j]
data.push(sum)
}
}
const set = new Set(data) //data배열 중복제거
answer = [...set]
answer.sort((a,b)=>
a-b)
return answer;
}
비교적 생각해내는 과정이 어렵지않아 다른 방식으로도 구현을 하였는지 확인했지만, 방식이 거의 비슷하여 참고할만한 코드는 없었다...ㅎ