<백준 온라인 저지 : 2577번>
- 숫자의 개수 -
문제설명
이 문제를 풀며
- 세자리수 곱셈의 결과는 정수형의 범위 내에서 충분히 해결할 수 있다.
- 곱한 결과를 % 10 연산을 하게 되면 일의 자리의 수를 구할 수 있고, 해당 일의 자리 숫자를 카운트 한 뒤, 원래의 값을 10으로 계속 나눠주어 자릿수를 줄여나간다.
- 0에서 9까지의 수의 개수를 카운트 해야 하는데 이는 배열의 인덱스와 정확히 일치한다. 그러므로 배열[일의 자리 수]로 인덱싱하여 해당 배열 요소의 값을 1씩 증가시킨다.
- 자세한 것은 소스코드 참고.
내 소스
#include <stdio.h> int main() { int input; int mul=1, result = 0; int cnt[10] = { 0, }; for (int i = 0; i < 3; i++) { scanf("%d", &input); mul *= input; } for (int i = 0; mul > 0; i++) { result = mul % 10; //일의 자리의 수를 result에 저장 cnt[result] += 1; //배열[일의 자리의 수] 를 +1 mul /= 10; //원래의 값의 자릿수를 줄임. } for (int i = 0; i < 10; i++) printf("%d\n", cnt[i]); return 0; }
채점 결과
'Study (etc) > Problem Solving' 카테고리의 다른 글
[BOJ / Python] 1157번 : 단어공부 (0) | 2022.02.08 |
---|---|
[BOJ/C] 1712번 : 손익분기점 (0) | 2022.01.27 |
[BOJ / C] 1924번 : 2007년 (0) | 2019.05.12 |
[BOJ / C] 10430번 : 나머지 (0) | 2019.05.08 |
[BOJ / C] 11718번 : 그대로 출력하기 (0) | 2019.05.06 |