프로그래머스 Level 1 - 두개뽑아서 더하기 - [...new Set(array)]

크롱·2023년 10월 30일
0

코딩테스트

목록 보기
40/61

문제

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

내 풀이

중복되면 answer.push 안되게 했다.

function solution(numbers) {
    var answer = [];
    for(let i=0;i<numbers.length-1;i++){
        for(let j=i+1;j<numbers.length;j++){
            const sum= numbers[i]+numbers[j]
        if(!answer.includes(sum)){
            answer.push(sum)
        }
        }

    }
    return answer.sort(function(a,b){
        return a-b
    });
}

다른 풀이

나랑 로직은 똑같은데
중복방지 로직이 다르다. 나처럼 answer.push 안되게 하기보다,
우선 다 넣고
Set으로 중복방지하심.

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)
}
profile
👩‍💻안녕하세요🌞

0개의 댓글