하루하루 꾸준히, 인생은 되는대로

알고리즘

백준 14912 숫자 빈도수 C++

긤효중 2022. 7. 28. 20:27

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

 

14912번: 숫자 빈도수

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

www.acmicpc.net


문제

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)가 첫째 줄에 주어진다.


TOSTRING함수로 string형태로 숫자를 바꿔주고, 찾고자 하는 한 자리 문자와 string의 i (0~문자열 크기)번쨰 문자가 같다면 빈도 수를 증가시키는 방식으로 해결하였다.

#include <iostream>
#include <string>
using namespace std;
 
int main(void){
 
    int n;
    char check;
    cin >> n >> check;
    int cnt = 0;
 
    for(int i = 1;i<=n;i++){
        string str = to_string(i); //string형태로 바꿔주고
        for(int j = 0;j<str.size();j++){ //check와 같다면 cnt증가
            if(str[j] == check){
                cnt++;
            }
        }
    }
    cout << cnt;
}

'알고리즘' 카테고리의 다른 글

백준 15924 욱제는 사과팬이야!!  (0) 2022.08.01
백준 20162 간식 파티 C++  (0) 2022.07.31
백준 2660 회장뽑기 C++  (0) 2022.07.28
백준 5648 역원소 정렬 C++/STOI함수  (0) 2022.07.24
백준 12919 A와 B 2  (0) 2022.07.24