BAEKJOON/단계별로 풀어보기

[BOJ] 2577번 : 숫자의 개수

말하는 알감자 2022. 7. 26. 14:11

🔒 문제

세 개의 자연수 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번 쓰였다.

⌨ 입력

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

🖨 출력

첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

📚 예제

Ex)

150
266
427

3
1
0
2
0
0
0
2
0
0

🔑 c언어 코드

#include<stdio.h>

int main()
{
    int n[10] = { 0, }; // 0~9까지 숫자 몇번 쓰였는지 기록하기위한 배열,0으로 초기화
    int A, B, C;
    scanf("%d %d %d", &A, &B, &C); 
    int x = A * B * C;
    int i, j;
    for (i = 0; i < 10; i++) // 각 자리수 숫자 구하려고
    {
        for(j = 0; j < 10; j++) //  각 자리수 숫자 사용 횟수 카운팅
            if (j == x % 10)
            {
                n[j]++;
                break; // 숫자 카운트 되면 break
            }
        if ((x /= 10) == 0) // 숫자 자릿수 넘어가게 카운팅 안하도록
            break;
    }

    for (i = 0; i < 10; i++)
        printf("%d\n", n[i]);


    return 0;
}

'BAEKJOON > 단계별로 풀어보기' 카테고리의 다른 글

[BOJ] 1546번 : 평균  (0) 2022.07.26
[BOJ] 3052번 : 나머지  (0) 2022.07.26
[BOJ] 2562번 : 최댓값  (0) 2022.07.25
[BOJ] 10818 : 최소, 최대  (0) 2022.07.25
[BOJ] 1110번 : 더하기 사이클  (0) 2022.07.25