알고리즘

프로그래머스 Level 1 - 두 개 뽑아서 더하기(JavaScript)

또롱또 2022. 5. 16. 08:39
728x90

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

function solution(numbers) {
    // 정답을 받을 코드
    var answer = [];
    let newArry = numbers.sort((a, b)=> a - b);
    
    // 받아온 배열을 돌면서 더해준다
    for(let i=0; i<newArry.length; ++i){
        // arr[i] + arr[i+1] 이되야하니 아래와 같은 구조
       for(let j=i+1; j<newArry.length; ++j){
           // 더해진 값을 일단 모두 push 한다
           answer.push(newArry[i] + newArry[j])
       }
    }
    
    // 중복값 거르기
    // Set을 이용해서 중복값이 없는 객체생성
    const dupli = new Set(answer)
    // 객체를 배열로 변환
    answer = [...dupli];
    
    // 다시 재정렬
    answer.sort((a, b)=> a - b);
    
    // 변수
    return answer;
}

Set을 이용해서 중복값을 제거한거외엔 새롭게 써본게 없다.

정답코드 역시 Set을 사용했지만, 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)
}
728x90