연습장
32. 배열 만들기 2 본문
Q. 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
제한사항
1 ≤ l ≤ r ≤ 1,000,000
l 과 r 사이의 숫자들중 0과 5 만으로 표현되는 숫자를 배열로 모우면 된다 .
먼저 l과 r 사이의 숫자를 뽑기위해 for 문을 사용
숫자의 자릿수를 각각 구분하기위해서
`${i}` 로 문자로 만들고
[...str] // 배열로 만들어주는 spread operator 사용했다.
그리고 배열로 바뀐 문자열이 각각 "5" 거나 "0" 일때마다
그다음 카운트를 샐 변수 j 를 만들어서 조건을 만족하면 1 씩 추가하였다.
ex) 515 의 경우
5 -> j = 1
1 -> j = 1
5 -> j = 2
가 되며 '515' 의 length = 3 이며 j = 2 로 같지 않다. 따라서 이는 원하는 수가아니다.
ex) 5050 의 경우
5 -> j = 1
0 -> j = 2
5 -> j = 3
0 -> j = 4
이되며
'5050' 의 length = 4 이며 와 j = 4 로 값이 같게 된다. 따라서 우리가 원하는 수가 된다.
function solution(l, r) {
var answer = [];
for (let i = l ; i <=r ; i++){ // i 는 l 과 r 사이로 확인할 숫자들
let j = 0; // j 는 0 또는 5 의 갯수를 확인
for(x of [...`${i}`]){
if (x == "5"){
j++
}
if (x == "0"){
j++
}
}
if ( `${i}`.length ==j){
answer.push(i)
}
}
if(answer.length == 0){
answer.push(-1)
}
return answer;
}
'프로그래머스 > 0단계' 카테고리의 다른 글
34. 콜라츠 수열 만들기 (0) | 2023.06.23 |
---|---|
33. 카운트 업 (0) | 2023.06.23 |
31. 수열과 구간 쿼리 4 (0) | 2023.06.23 |
30. 수열과 구간 쿼리 2 (0) | 2023.06.23 |
29. 수열과 구간 쿼리 3 (0) | 2023.06.23 |