[Programmers]두 개 뽑아서 더하기

이묘·2022년 7월 11일
0

CodingTest

목록 보기
2/41
post-thumbnail

프로그래머스 코딩테스트 연습 level 1 '두 개 뽑아서 더하기'

  • for문 이용하여 배열에서 객체 뽑아오기
  • Set함수를 이용하여 중복 제거하기
  • 전개 구문[...] 이용하기
  • sort() 이용하여 오름차순 정렬하기



소스코드

function solution(numbers) {
    var temp = [];

    for(var i = 0; i < numbers.length; i++){
        for(var j = i+1; j<numbers.length; j++){
            temp.push(numbers[i] + numbers[j])
        }
    }
    
    // 전개구문 이용 -> 깊은 복사가 베이스로 깔려있음.
    const answer = [...new Set(temp)]
    answer.sort((a,b) => a-b);

    return answer;
}

var result = solution([5,0,2,7]);
console.log(result);



CODE REVIEW

    for(var i = 0; i < numbers.length; i++){
        for(var j = i+1; j<numbers.length; j++){
            temp.push(numbers[i] + numbers[j])
        }
    }

for()을 이용하여 numbers배열 안에 있는 2개의 객체를 중복 없이 뽑아서 더해주고 temp안에 push합니다.


const answer = [...new Set(temp)];
// const answer = {...new Set(temp)};
// 라고 써도 무관함.

전개 구문[...]을 이용하여 temp에서 중복을 제거한 배열을 answer에 저장합니다.

전개 구문(spread syntax): 객체나 배열들을 전개(펼침)하여 사용할 수 있도록 해주는 문법. 다른 객체를 깊은 복사를 해주어 값을 추가하거나 변경할 수 있다.

여기서는 temp를 깊은 복사하여 set함수를 적용시켜주어 중복을 제거해주었다.


answer.sort((a,b) => a-b);

sort()는 오름차순 또는 내림차순으로 정렬할 수 있도록 해주는 함수이다.
괄호 안에 함수를 넣을 수 있고, 위와같이 쓰면 오름차순 정렬 b-a라고 쓰면 내림차순 정렬이 된다.





출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

profile
본질을 공부해야 응용도 하지 않을까

0개의 댓글