-
문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한 조건
numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
입출력 예
문제 풀이
function solution(numbers) { let answer = []; for (let i = 0; i < numbers.length; i++) { for (let j = i + 1; j < numbers.length; j++) { let plus = numbers[i] + numbers[j]; if (!answer.includes(plus)) answer.push(plus); } } answer.sort((a, b) => a - b); return answer; }
풀이입니다.
간단하게 for 반복문으로 numbers.length 만큼 반복해줍니다.
그 안에서는 반복문을 하나 더 돌려주는데 j의 값은 i + 1 로 i 가 +1 될때마다 j는 그 값보다 1 더 크게 해줍니다.
그래야 반복하는 i의 수보다 한번 더 적게 반복하기 때문입니다.
number[i] + number[i]를 해주고 answer에 그 값이 존재하지 않는다면 push 해줍니다.
그 후에 오름차순으로 해주어야하기 때문에 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) }
'코딩 기록 > 자바스크립트 알고리즘' 카테고리의 다른 글
(자바스크립트 알고리즘) 키패드 누르기 - kimyang-sun (0) 2020.10.18 (자바스크립트 알고리즘) 3진법 뒤집기 - kimyang-sun (0) 2020.10.18 (자바스크립트 알고리즘) 다트 게임 - kimyang-sun (0) 2020.10.18 (자바스크립트 알고리즘) 크레인 인형뽑기 게임 - kimyang-sun (0) 2020.10.16 (자바스크립트 알고리즘) 비밀지도 - kimyang-sun (0) 2020.10.16 댓글