93
풀이
크기 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)))
문제 출처
https://www.acmicpc.net/problem/2577