-
[TIL] 21/01/12 알고리즘 풀이IT 지식 2021. 1. 12. 13:55728x90
문제 - 프로그래머스 월간 코드 챌린지 시즌 1 > 두 개 뽑아서 더하기
문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한사항
-
numbers의 길이는 2 이상 100 이하입니다.
-
numbers의 모든 수는 0 이상 100 이하입니다.
-
입출력 예
더보기numbersresult
[2,1,3,4,1]
[2,3,4,5,6,7]
[5,0,2,7]
[2,5,7,9,12]
입출력 예 설명
입출력 예 #1
-
2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)
-
3 = 2 + 1 입니다.
-
4 = 1 + 3 입니다.
-
5 = 1 + 4 = 2 + 3 입니다.
-
6 = 2 + 4 입니다.
-
7 = 3 + 4 입니다.
-
따라서 [2,3,4,5,6,7] 을 return 해야 합니다.
입출력 예 #2
-
2 = 0 + 2 입니다.
-
5 = 5 + 0 입니다.
-
7 = 0 + 7 = 5 + 2 입니다.
-
9 = 2 + 7 입니다.
-
12 = 5 + 7 입니다.
-
따라서 [2,5,7,9,12] 를 return 해야 합니다.
나의 해답
더보기function solution(numbers) { var answer = []; for (let i = 0; i < numbers.length; i++) { for (let j = i+1; j < numbers.length; j++){ answer.push(numbers[i]+numbers[j]) } } answer = [...new Set(answer)] answer.sort(function(a,b) { return a - b }) return answer; }
오늘 문제로 알게 된 것.
Set() 객체
Set() 객체는 자료형과 관계없이 원시 값과 객체 참조값 모두 유일한 값을 저장할 수 있는 객체입니다. 이것을 활용하면 배열 혹은 객체 안에 존재하는 중복값을 제거하고 유니크한 값만을 가질 수 있는 자료구조를 만들 수 있습니다.
728x90'IT 지식' 카테고리의 다른 글
[TIL] 21/01/18 알고리즘 풀이 (0) 2021.01.18 [TIL] 21/01/15 알고리즘 풀이 (0) 2021.01.15 새해 맞이 2020 개발 트렌드 돌아보기 - 가장 많이 사용한 협업툴, 연봉순위 등 (0) 2021.01.06 새해 맞이 2020 개발 트렌드 돌아보기 - 가장 많이 사랑받은 기술들 (0) 2021.01.06 새해 맞이 2020 개발 트렌드 돌아보기 - 가장 많이 사용한 기술들 (0) 2021.01.06 -