티스토리 뷰

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

 

코딩테스트 연습 - 두 개 뽑아서 더하기

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한

programmers.co.kr

 

해결방법

1. numbers에서 서로 다른 인덱스에 있는 두 수를 더해 answer에 추가

2. 중복제거 후 오름차순 정렬

 

 

 

풀이

function solution(numbers) {
    var answer = [];
    
    for (let i = 0; i < numbers.length; i++){
        for (let j = 1; j < numbers.length - i; j++){
            num = numbers[i] + numbers[i+j];
            answer.push(num)      
        }
    }
    answer = [...new Set(answer)]; //중복제거
    answer = answer.sort((a,b)=>a-b); //오름차순

    return answer;
}

 

 

배운 점

1. 배열에서 중복을 제거하는 다양한 방법

 

answer = [...new Set(answer)];

유일한 값만 담는 set()을 사용하고 다시 배열 안에서 전개연산자(...)를 사용하여 중복 제거된 배열로 만든다

 

answer = Array.from(new Set(answer));

Array.from을 사용해 중복이 제거된 Set으로부터 배열로 만든다

 

answer = answer.filter((a,i) => answer.indexOf(a) === i);

해당 요소의 index가 이 배열에서 처음 나오는 요소의 index와 일치하는 요소만 반환하여 배열의 중복을 제거한다

 

이 외에도 더 다양한 방법들이 있으며 밑의 블로그에서 참고할 수 있다

참고 https://jsikim1.tistory.com/227

 

JavaScript 배열 중복 제거하는 방법 5가지

JavaScript 배열 중복 제거하는 방법 5가지 JavaScript 의 배열에서 중복을 제거하는 5가지 방법을 알려드리도록 하겠습니다. 목차 set() 사용하여 배열에서 중복 제거하는 방법 filter(), indexOf() 사

jsikim1.tistory.com

 

댓글