Lv 1. 두 개 뽑아서 더하기

📚 문제

두 개 뽑아서 더하기
https://programmers.co.kr/learn/courses/30/lessons/68644

💡 접근

배열에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 answer 배열에 넣어준다.
answer 배열을 오름차순으로 정렬해주고
filter()로 반복된 요소를 제거한다.

⌨️ 코드

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

    for (var i = 0; i < numbers.length - 1; i++){
        for(var j = i+1; j < numbers.length; j++){
		// 서로 다른 두 요소를 뽑아 
            answer.push(numbers[i] + numbers[j]); // 더해서 배열에 push해서 넣어준다.
        }
    }
    
    return answer.sort((a,b) => a - b).filter((el,index) => answer.indexOf(el) === index);
  	// indexOf(el)은 el의 첫 번째 요소를 반환하기 때문에 index랑 indexOf(el)을 비교해서 같은 것만 반환하면 중복된 요소를 없앨 수 있다.
}

다른 사람 풀이

   return answer = [...new Set(array)].sort((a, b) => a - b);

✅ 메소드 정리

Set

  • 자료형에 관계없이 유일한 값을 저장한다.

  • syntax

	new Set([iterable]);

... (Spread Operator)

  • 배열이나 문자열같이 반복가능한 객체를 하나씩 펼쳐서 리턴한다.
  • ex) new를 사용해 생성자를 호출할 때 쉽게 전개할수 있다
      var dateFields = [1970, 0, 1];  // 1 Jan 1970
      var d = new Date(...dateFields);

📝 리뷰

다른 사람의 풀이에서 전개연산자와 Set 객체에 대해 공부할 수 있었다.

좋은 웹페이지 즐겨찾기