반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 00:03
관리 메뉴

ImJay

[C언어] 백준 2577번 : 숫자의 개수 본문

백준 - C, C++/05. 1차원 배열

[C언어] 백준 2577번 : 숫자의 개수

ImJay 2020. 9. 24. 00:03
반응형

백준 2577번 : 숫자의 개수

- 사용언어 : C언어

 

www.acmicpc.net/problem/2577

 

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;

 

각 숫자가 몇 회 사용되었는지 세는 방법입니다.

 

반응형
Comments