코딩 테스트 풀이 🛠

[프로그래머스] k의 개수

엄성준 2023. 2. 10. 01:09

문제 설명

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • 1 ≤ i < j ≤ 100,000
  • 0 ≤ k ≤ 9

 

입출력 예

 

i j k result
1 13 1 6
10 50 5 5
3 10 2 0

 

입출력 예 설명

 

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.

입출력 예 #3

  • 3부터 10까지 2는 한 번도 등장하지 않으므로 0을 return 합니다.

 

나의 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function solution(i, j, k) {
    var answer = 0;
    const arr = []
    for(let x=i; x<=j; x++){
        arr.push(String(x))
    }
   
    arr.forEach((nums)=>{
        nums.split('').forEach((num)=>{
            if(num == k){
                answer++
            }
        })
    })
    return answer;
}
cs

 

문제를 풀며 느낀 점

 

- 먼저  반복문을 통해서 i부터 j까지의 수를 String으로 형 변환을 한 값을 arr 배열에 할당하였고 arr을 forEach()를 통해서 하나 하나 순회하면서 들어온 nums값을 split('')함수를 통해서 한자릿수씩 자른뒤 그걸 forEach()를 통해서 읽은 뒤 num의 값이 k와 같다면 answer++을 통해서 1씩 증가시켰습니다.