반응형
풀이
#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까지의 값을 구해줍니다.
반응형