카테고리 없음

[c++] 0부터 9까지 digit 몇번 등장 카운트 프로그램

기술1 2024. 3. 10. 22:59
반응형

 

풀이


#include <iostream>
#include <array>

using namespace std;

int main() {

    int num;
    cin >> num;

    array<int, 10> counts = { 0 };

    while (num > 0)
    {
        int digit = num % 10;
        counts[digit]++;
        num /= 10;
    }

    for (int i = 0; i < 10; ++i)
    {
        cout << i << " : " << counts[i] << endl;
    }
    return 0;
}

여기서 while문을 사용해서 문제를 풀었습니다. 카운터를 할 때 배열을 초기화해야 하므로 초기화를 해주었고 array<int, 10>을 통해 10개가 되도록 배열을 만들었습니다.

 

그 다음 while을 통해 digit를 구했는데요. % 10을 하면서 숫자 끝이 어떤 숫자인지 알 수 있도록 해주었으며 이후 나누기를 통해 앞의 숫자로 이동하는 것입니다. 예를들면 12345가 있으면 나머지 10을 하면 1234가 되므로 %10으로 4를 판별하고 계속해서 끝날 떄까지 while을 통해 해줍니다.

 

이후 for문을 통해 0부터 9까지의 값을 구해줍니다. 

반응형