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

minji jeon·2022년 7월 19일
0

알고리즘

목록 보기
27/29
post-thumbnail

1. 문제

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

2. 접근

문제가 헷갈려서
우선 어떤 수랑 어떤수랑 더해야 하는지 그림을 그려서 이해를 하였다.

이런식으로 더해야 하니
for문의 i값으로 도는 순서를 조절해야겠다고 생각했다.

3. 내답

function solution(numbers) { 
    let answer = []
   for (let i = 0 ; i < numbers.length ; i++){  // 0부터 length까지
    for (let j = i+1 ; j < numbers.length ; j++){  //
        answer.push(numbers[j] + numbers[i])
    }
   }

   let result1 = [...new Set(answer)].sort((a,b)=> a-b)
  • 두번째 for문은 첫번째 배열의 다음인덱스 부터 돌도록 하였다.

num[0] + num[1]

num[0] + num[2]

num[1] + num[2]

num[1] + num[3]

….이렇게 돌게된다. 이렇게 더해진 값들을 모두 push함수로 새로운 배열에 넣어준다.

그 다음 중복인 값을 제거 하기 위해 set함수를 사용하였다.

Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.쉽게말하자면, set은 유니크한 값만 가질 수 있다.

😀중복삭제방법 : https://jsikim1.tistory.com/227

set으로 모든 배열을 정렬한 뒤에

sort함수로 오름차순으로 정렬해주었다.

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글