https://www.acmicpc.net/problem/2577
string으로 바꿔서 string을 돌면서 해당 인덱스에 +1 해준다.
나의 풀이
#include <iostream>
#include <string>
using namespace std;
int main(){
int A, B, C, sum;
cin >> A;
cin >> B;
cin >> C;
string result = to_string(A*B*C);
for(int i=0; i<10; i++){
sum = 0;
for (int j=0; j<result.length(); j++)
if (result[j] == (i+'0')) sum++;
cout << sum << '\n';
}
return 0;
}
더 간단한 풀이
#include <iostream>
#include <string>
using namespace std;
int main(){
int A, B, C;
int count[10] = {0,};
cin >> A;
cin >> B;
cin >> C;
string result = to_string(A*B*C);
for (char ch : result) { // 문자열의 문자들을 하나씩 꺼내온다. (foreach문 활용)
// 문자를 숫자로 변환한 값의 인덱스를 1 증가시킨다.
count[ch - '0']++;
}
for(int v:count)
cout << v << '\n';
return 0;
}
아스키코드 조심조심