프로그래머스 | 두개 뽑아서 더하기

김선빈·2021년 4월 10일
0

코딩테스트

목록 보기
1/4

👉 문제 설명

👉 Javascript 문제 풀이

function solution(answer) {
    let arr = [];
    for(let i = 0; i < answer.length; i++) {
        for(let j = i+1; j < answer.length; j++) {
            let sum = answer[i] + answer[j];
            if(!arr.includes(sum)) {
                arr.push(sum);  
            } 
        }
    }
    arr = arr.sort();
    return arr;
}

이중 포문을 돌려서 모든 요소를 더하여 if문을 통해 arr 배열에 포함되어져 있지 않은것만
arr 배열에 넣어줬다.
그 뒤 오름차순 정렬를 위해 정렬 함수인 sort를 사용하여 정렬해 리턴 해주었다.

👉 다른 사람의 문제 풀이

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

이 문제 풀이는 temp 배열에 중복과 관련 없이 모든 요소를 더한 값을 배열에 넣은 뒤
Set 함수를 사용하여 중복을 제거해주고, 정렬하여 리턴해준 코드이다.
내가 작성한 코드보다 깔끔했고, Set 함수에 대해서도 알게되었다.
return 부분에 anwer.sort()로만 해줘도 되지 않을까 생각이 들었다.

👉 Set 함수 ?
1. Set()은 value 들로 이루어진 컬렉션(집합)
2. Array와 다르게 Set은 값은 value를 2번 포함할 수 없다.
3. 중복 값이 들어와도 배열에 추가가 되지 않는다.

profile
개발개발개발

1개의 댓글

comment-user-thumbnail
2021년 4월 12일

도움 얻고 갑니다 감사합니당!!!

답글 달기