🙌문제설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
☑️나의 풀이
for 문을 두개 돌면서 모든 합의 경우를 temp 배열에 넣는다.
for 문을 다 돌고 temp의 정렬, 중복제거를 한다.
중복제거 생각하자마자 갑지가 퍼뜩 Set 객체가 생각났다! filter 메서드도 마찬가지로 사용할 수 있을 것 같다.
function solution(numbers) {
let temp = [];
for (let i=0; i<numbers.length; i++){
for(let j=i+1; j<numbers.length; j++){
temp.push(numbers[i] + numbers[j])
}
}
const ans = [...new Set(temp)]
return ans.sort((a,b)=>a-b)
}
☑️배운 점
Set 객체를 이용한 중복제거.
filter 로 바꿔서 문제를 풀어보자면
`return ans.sort((a,b) => a-b).filter((val,idx) => val != ans[idx+1]);`
로 중복 제거할 수 있다.