본문 바로가기

coding test

[자바스크립트] 두 개 뽑아서 더하기 - 프로그래머스

프로그래머스에서 제공하는 코딩 테스트를 풀어보자!

문제는 여기 들어가서 확인하면 된다.

function solution(numbers) {
    let num = []
    for(let i=0; i<numbers.length; i++){
        for(let j = 0; j<numbers.length; j++){
            if( i != j) // 서로 다른 인덱스에 있는 두 개의 수
            num.push(numbers[i]+numbers[j]);
        }
    }
    var answer = [...new Set(num)]
    return answer.sort((a,b)=> a - b)
}

문제를 읽어보면 배열 속에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아야 한다.

때문에 for문을 두번 돌려 각각의 숫자를 numbers 배열의 키값으로 사용하는데, 이때 i와 j가 동일하면 안 된다.

해서 if문을 추가해서 i != J 일 때 값을 받아내거나 아니면 j = i+1로 정의해 동일한 인덱스 값이 되는걸 피해준다.

function solution(numbers) {
    let num = []
    for(let i=0; i<numbers.length; i++){
        for(let j = i+1; j<numbers.length; j++){
        // 서로 다른 인덱스에 있는 두 개의 수
            num.push(numbers[i]+numbers[j])

        }
    }
    var answer = [...new Set(num)]
    return answer.sort((a,b)=> a - b)
}

그렇게 뽑힌 각각의 수를 더해 변수 num에 넣어준다. 

마지막에 정렬해주면 끝!

728x90

'coding test' 카테고리의 다른 글

node.js readline 예제  (0) 2022.06.18
[자바스크립트] 없는 숫자 더하기 - 프로그래머스  (0) 2022.03.17