프로그래머스 (JS)/Lv. 0

[Programmers] 120887번 - k의 개수

hodo- 2023. 3. 4. 16:24

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;
}