백준 - C, C++/05. 1차원 배열
[C언어] 백준 2577번 : 숫자의 개수
ImJay
2020. 9. 24. 00:03
반응형

백준 2577번 : 숫자의 개수
- 사용언어 : C언어
1. 문제
세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면
A × B × C = 150 × 266 × 427 = 17037300 이 되고,
계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
2. 코드
#include <stdio.h>
int main(void) {
int input, sum=1;
int num[10];
for(int i=0; i<10; i++) num[i] = 0; // 배열 값 0으로 지정
for(int i=0; i<3; i++) { // A*B*C 구하기
scanf("%d", &input);
sum *= input;
}
for(int i=0; sum > 0; i++) { // 각 숫자가 몇 번 쓰였는지 구하기
input = sum % 10;
num[input] += 1;
sum /= 10;
}
for(int i=0; i<10; i++) printf("%d\n", num[i]);
}
3. 풀이
이제까지 사용했던 부분들을 종합하여 푸는 문제였습니다.
그럼에도 불구하고 많은 부분에서 막히고, 틀렸는데,
이 문제의 정답률이 61.597%, 심지어 올림피아드 초등부 2번 문제라는 것에서
전공생인 저의 방향성에 대해 다시 한번 의구심을 품게되네요.
괜히 씁쓸하고 좌절감만 들었습니다..
이 코드의 포인트는
input = sum % 10;
num[input] += 1;
각 숫자가 몇 회 사용되었는지 세는 방법입니다.
반응형