본문 바로가기
Develop/백준 (Cpp)

[백준] 14912번 : 숫자 빈도수 (C++)

by Tarra 2023. 9. 18.

14912번 : 숫자 빈도수


문제)

1부터 n까지 차례대로 써 내려갈 때 특정 숫자(digit)의 빈도수를 구하여 출력하는 프로그램을 작성하시오.

예를 들어, n = 11 이고 숫자 1의 빈도수를 구하라고 하면, 1 2 3 4 5 6 7 8 9 10 11 에서 숫자 1은 1에서 한 번, 10에서 한 번, 11에서 두 번 나타나므로 1의 빈도수는 총 4 이다.

 

 

 

입력 :

자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다.

 

 

 

출력 :

첫째 줄에 빈도수를 출력한다.

 

 

 

 

 

풀이)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 14912. 숫자 빈도수
#include <iostream>
 
using namespace std;
 
int n, d;
int cnt[100010];
 
int main()
{
    cin >> n >> d;
 
    for (int i = 1; i < n + 1; i++)
    {
        int a = i;
        while (a)
        {
            cnt[a % 10]++;
            a /= 10;
        }
    }
    
    cout << cnt[d];
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/14912 

 

14912번: 숫자 빈도수

자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다.

www.acmicpc.net