[프로그래머스 level1] 두 개 뽑아서 더하기

김예지·2021년 10월 13일
1

문제

https://programmers.co.kr/learn/courses/30/lessons/68644


문제 풀이

코드

function solution(numbers) {
    let answer=new Set();
    for(let i=0; i<numbers.length-1; i++){
        for(let j=i+1; j<numbers.length; j++){
            answer.add(numbers[i]+numbers[j]);
        }
    }
    answer=[...answer];
    return answer.sort((a, b)=>a-b);
}

코드2

function solution(numbers) {
    const temp=[];
    for(let i=0; i<numbers.length-1; i++){
        for(let j=i+1; j<numbers.length; j++){
            temp.push(numbers[i]+numbers[j]);
        }
    }
    const answer=[...new Set(temp)];
    return answer.sort((a, b)=>a-b);
}

이론

Set()객체는 값을 추가하게 되면, {1, 2, 3}과 같이 추가된다. 하지만 우리가 원하는 것은 '배열'의 형태이기 때문에 이것을 전재연산자를 사용해서 전개해준 후(...) 배열에 삽입해준다.
[...{1, 2, 3}]은 결국 [1, 2, 3]이 된다.

set객체 reference: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 26일

10/26
let set=new Set()객체에 값 x를 추가하면(set.add(x)) Set은 객체이기 때문에 {x}의 형태로 담긴다. 객체는 {x1, x2, x3...}와 같이 담기며 이를 배열 형태로 만들어주기 위해서는 [...set]과 같이 만들어 주면된다.
프로그래머스에서는 객체를 console로 찍어도 잘 나타나지 않으니 주의!

답글 달기