function solution(numbers) {
var answer = [];
for (let i = 0; i < numbers.length; i++) {
for (let j = 0; j < numbers.length; j++) {
if (i !== j) {
answer.push(numbers[i] + numbers[j]);
}
}
}
// result 변수에 filter 메서드를 사용해서 answer 배열의 item의 index와 index가 같은 값만 출력한 새로운 배열을 만듦.
const result = answer.filter((item, index, self) => {
return self.indexOf(item) === index;
});
// result 오름차순으로 정렬
result.sort((a, b) => a - b);
return result;
}
answer
배열의 중복된 값을 어떻게 제거할 지를 고민하다가, filter
메서드를 사용해서 중복된 값이 없는 배열을 만드는 방법을 알 수 있었다.
function solution(numbers) {
var answer = [];
// 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열로 만들면
for (let i = 0; i < numbers.length; i++) {
for (let j = 0; j < numbers.length; j++) {
if (i !== j) {
answer.push(numbers[i] + numbers[j]);
}
}
}
// Set을 사용해서 유일한 value만 저장한다.
const result = [...new Set(answer)];
// result 오름차순으로 정렬
result.sort((a, b) => a - b);
return result;
}
더 나은 방법으로는 Set
을 사용하는 건데, Set
은 객체로 자료형에 상관 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다고 한다. Spread Operator
와 Set
을 사용하니, 나의 풀이보다 테스트 케이스에서 더 빠르게 통과하는 것을 볼 수 있었다.