Problem
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
Solution
function solution(i, j, k) {
return [...Array(j - i + 1).fill(0).map(x => i++).map(String).join('')].filter(x => x === k.toString()).length
}
1은 1, 10, 11, 12, 13 이렇게 총 6번 등장 -> 말에 5번이 등장하는데 왜 6번이지? 의문이었는데 11이 1이 2번 등장하기 때문에 총 6번이 등장하는 것이 맞다. 그렇다면 문제를 풀 때 10의 자리, 100의 자리 등등..을 고려해서 풀어줘야한다.
배열안에 join('')을 쓰면 다 나눠준다.
아래 다른 사람 코드인데 더 간략하게 풀 수 있었다.
function solution(i, j, k) {
let a ='';
for(i;i<=j;i++){
a += i;
}
return a.split(k).length-1;
}
'프로그래머스 (JS) > Lv. 0' 카테고리의 다른 글
[Programmers] 120896번 - 한 번만 등장한 문자 (0) | 2023.03.04 |
---|---|
[Programmers] 120835번 - 진료순서 정하기 (0) | 2023.03.04 |
[Programmers] 120890번 - 가까운 수 (0) | 2023.03.04 |
[Programmers] 120842번 - 2차원 배열 (0) | 2023.03.03 |
[Programmers] 120848번 - 팩토리얼 (0) | 2023.03.03 |