알고리즘/알고리즘 문제풀이

2577번: 숫자의 개수

b1ackhand 2018. 12. 29. 23:51

2018.12.29.


문제 출처:

https://www.acmicpc.net/problem/2577


문제 분석:

세자리수 정수 3개를 입력받고 다 곱한 값이 0-9까지가 각각 몇번 있는지 출력하라


문제 해결:

세자리수 정수의 3개의 곱이 몇자리 수인지 알아보고 그 횟수만큼 for문을 돌려 각 자리를 10씩 나눠줘서 

해당하는 배열의 크기를 1씩 늘려준다.


내 소스코드:

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
32
33
34
#define _CRT_SECURE_NO_WARNINGS   
#include <stdio.h>  
 
int main()
{
    int A, B, C, Result;
    int arr[10= {0,};//0-9까지 몇번 출력됬는지
    int ans;//각 자리수를 임시저장
    int num = 0;//몇자리수 인지확인
    int temp;//num을 임시저장
 
    scanf("%d %d %d"&A, &B, &C);
 
    Result = A * B * C;
    temp = Result;
 
    while (Result > 0)
    {
        num++;
        Result /= 10;
    }
    Result = temp;
    for (int i = 0;i < num;i++)
    {
        ans = Result % 10;
        arr[ans] += 1;
        Result /= 10;
    }    
    
    printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d", arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9]);
 
    
    return 0;
}
cs


실행결과:



고찰:

어려운 문제는 아니었지만 헷갈리지 않게 주석을 넣는 연습을 했다.

'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글

2437번: 저울  (0) 2022.01.23
8958번: 0X퀴즈  (0) 2019.01.01
2448번: 별 찍기 - 11  (0) 2018.12.28
2444번: 별 찍기 - 7  (0) 2018.12.26
2443번: 별 찍기 - 6  (0) 2018.12.26