두 개 뽑아서 더하기

hyuri·2023년 9월 25일
0

코딩테스트 연습

목록 보기
36/70

내가 작성한 답

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

다른 답

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)
}

해석

나는 for문과 if 문을 통해서만 풀었다.
근데 if문을 굳이 사용할 필요 없이 빈 배열을 하나 추가하고 마지막에 Set을 쓰면 됐었다.

Set을 생각하지 않은건 아니다.
퍼포먼스의 차이가 생각보다 컸다.

profile
개발자가 되고 싶은 지망생

0개의 댓글