참고로 int 값의 범위는 –2,147,483,648 ~ 2,147,483,647이다. 즉 약 2*10^9까지 담을 수 있는데
이 문제에서 a*b*c의 최댓값은 10^9이므로 int 값을 쓸 수 있음
만약에 더 큰 수가 주어진다면 int가 아닌 unsigned int 등을 사용해야할 수도 있음
#include <stdio.h>
#include <string.h>
int arr[10]; //mult 각 자리 수의 개수를 적는 배열, 0으로 자동 초기화
int main(void)
{
int a,b,c,mult;
scanf("%d %d %d",&a,&b,&c);
mult=a*b*c;
while(mult!=0)
{
arr[mult%10]++; //mult의 일의 자리수 구하고 그거에 맞는 arr 인덱스 값 증가
mult/=10;
}
for(int i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
'알고리즘! > 백준 CLASS1' 카테고리의 다른 글
2884: 알람 시계 (0) | 2023.07.08 |
---|---|
10250: ACM 호텔 (0) | 2023.07.08 |
1157: 단어공부 (0) | 2023.07.08 |
2675: 문자열 반복 (0) | 2023.07.07 |
2920: 음계 (0) | 2023.07.07 |