[백준] 2577번 숫자의 개수 (C/C++/Java 자바/Python 파이썬)

풀이

크기 10짜리 배열을 만들어 0에서 9까지 수의 개수를 저장합니다. 입력받은 세수의 곱을 10씩 나누어가며 맨 끝 숫자를 체크한 후 해당 위치 배열 값을 1씩 더하는 방식으로 진행합니다. 파이썬은 문자열 내 특정 문자를 세주는 count함수가 있으므로 리스트 선언 없이 그대로 사용하면 쉽게 풀 수 있습니다.


코드

C

#include <stdio.h>

int main() {
    int num[10] = {0, };
    int a, b, c, i;
    
    scanf("%d %d %d", &a, &b, &c);
    i = a*b*c;
    
    while(i>0){
        num[i%10]++;
        i /= 10;
    }
    
    for(i = 0; i<10;i++){
        printf("%d\n", num[i]);
    }
    return 0;
}

C++

#include <iostream>

int main() {
    int num[10] = {0, };
    int a, b, c, i;
    
    std::cin >> a >> b >> c;
    i = a*b*c;
    
    while(i>0){
        num[i%10]++;
        i /= 10;
    }
    
    for(i = 0; i<10;i++){
        std::cout << num[i] << "\n";
    }
    return 0;
}

Java

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int [] num = new int [10];

        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int i = a*b*c;
        
        while(i >0){
            num[i%10]++;
            i /= 10;
        }

        for(i = 0; i < num.length; i++){
            System.out.println(num[i]);
        }
    }
}

Python

a=int(input())
b=int(input())
c=int(input())
i=str(a*b*c)

for n in range(10):
    print(i.count(str(n)))

문제 출처

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

Related posts

블로그 이사

[Codeforces] 50A Domino piling 풀이 코드 (C/C++/Java /Python)

[Codeforces] 1538B Friends and Candies 풀이 코드 (C/C++/Java /Python)