[programmers] 배열 만들기 2 - JavaScript
정수 l과 r 사이에서 0과 5로만 이루어진 정수를 오름차순으로 저장한 배열을 반환하는 문제입니다. 주어진 조건에 따라 반복문과 조건문을 사용하여 문제를 해결할 수 있습니다.
Jan 06, 2024
문제 설명
정수
l
과 r
이 주어졌을 때, l
이상 r
이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
제한사항
- 1 ≤
l
≤r
≤ 1,000,000
입출력 예
l | r | result |
5 | 555 | [5, 50, 55, 500, 505, 550, 555] |
10 | 20 | [-1] |
입출력 예 설명
입출력 예 #1
- 5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.
입출력 예 #2
- 10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.
solution.js
function solution(l, r) { const result = []; // 반복문의 범위 설정 for (let i = l; i <= r; i++) { // 배열 내의 객체를 문자열로 바꾼 뒤 각 자릿수를 확인, 5와 0만 있을 경우 push if ([...String(i)].every(num => num === "0" || num === "5")) { result.push(i); } } // 아무 숫자도 없다면 -1 반환 return result.length > 0 ? result : [-1]; }
핵심 키워드
- 비구조화 할당( … )을 통해 배열[] 안의 값이나 객체{} 안의 값에 접근할 수 있다.
- every() 함수는 배열의 모든 요소가 조건을 만족하는지 검사하여 boolean 값을 리턴한다.
결론!
해당 문제를 풀면서 …과 every() 함수를 사용하는 문법을 익힐 수 있었다.
Share article