풀이
크기 10짜리 배열을 만들어 0에서 9까지 수의 개수를 저장합니다. 입력받은 세수의 곱을 10씩 나누어가며 맨 끝 숫자를 체크한 후 해당 위치 배열 값을 1씩 더하는 방식으로 진행합니다. 파이썬은 문자열 내 특정 문자를 세주는 count함수가 있으므로 리스트 선언 없이 그대로 사용하면 쉽게 풀 수 있습니다.
코드
C
#include <stdio.h>
int main() {
    int num[10] = {0, };
    int a, b, c, i;
    
    scanf("%d %d %d", &a, &b, &c);
    i = a*b*c;
    
    while(i>0){
        num[i%10]++;
        i /= 10;
    }
    
    for(i = 0; i<10;i++){
        printf("%d\n", num[i]);
    }
    return 0;
}
C++
#include <iostream>
int main() {
    int num[10] = {0, };
    int a, b, c, i;
    
    std::cin >> a >> b >> c;
    i = a*b*c;
    
    while(i>0){
        num[i%10]++;
        i /= 10;
    }
    
    for(i = 0; i<10;i++){
        std::cout << num[i] << "\n";
    }
    return 0;
}
Java
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int [] num = new int [10];
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int i = a*b*c;
        
        while(i >0){
            num[i%10]++;
            i /= 10;
        }
        for(i = 0; i < num.length; i++){
            System.out.println(num[i]);
        }
    }
}
Python
a=int(input())
b=int(input())
c=int(input())
i=str(a*b*c)
for n in range(10):
    print(i.count(str(n)))