성장에 목마른 코린이

두 개 뽑아서 더하기 220412 본문

코딩 테스트 준비/프로그래머스 level 1

두 개 뽑아서 더하기 220412

성장하는 코린이 2022. 4. 12. 00:43
728x90

나의 솔루션

function solution(numbers) {
    let ans = [];
    for (let i = 0; i < numbers.length; i++) {
        for (let j = i+1; j < numbers.length; j++) {
            // 서로 다른 인덱스에 있는 두개의 수를 뽑아 더한다
            let sum = numbers[i] + numbers[j];
            // ans에 sum과 일치하는 존재하는 수가 없다면, 
            if (ans.indexOf(sum) === -1) {
                // ans에 sum을 push
                ans.push(sum);
            }
        }
    }
    // ans를 오름차순으로 sort
    ans.sort((a,b) => a-b);
    return ans;
}

좋아요가 가장 많이 달린 솔루션

function solution(numbers) {
    const 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 answer = [...new Set(temp)]

    return answer.sort((a, b) => a - b)
}

느낀점

Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.

즉, 어떤 값은 그 Set 콜렉션 내에서 유일합니다.

 

Set은 처음보는데 이번에 SQL 하면서 배운 SELECT DISTINCT 와 같이 유일한 값을 저장하네요.

좋은거 하나 배우고 갑니다! 역시 다른 사람의 솔루션을 보는게 되게 도움 많이 되는 것 같습니다!

Comments