문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한 사항
입출력 예
작성 코드
const solution = (numbers) => {
let result = [];
for(let i=0; i < numbers.length; i++) {
for(let j=i+1; j < numbers.length; j++) {
const number = numbers[i] + numbers[j];
result.push(number);
}
}
const uniqueNumbers = [...new Set(result)];
uniqueNumbers.sort((a, b) => {
return a-b;
})
return uniqueNumbers;
}
정리
result 배열의 중복체크를 indexOf를 사용할 수도 있지만 ...new Set() 함수를 사용하여 현재 배열의 중복된 값을 제거 후 새로운 배열을 반환받도록 했다. 코드가 2줄이나 줄었음 ㅎㅎ 개꿀
sort 정렬은 자바스크립트 MDN 문서를 참고했다. 내림차순일 경우 a, b 인자의 순서를 바꾸어서 리턴하면 됨. ex) return b-a