my study.

Coding Test/Baekjoon

[백준] 2577 숫자의 개수, java

fftl 2020. 12. 21. 19:42

www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

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

www.acmicpc.net

import java.io.*; //BufferedReader 를 사용하기 위함

public class Main{
    public static void main(String[] args){
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //입력값을 받기 위함
        int[] list = new int[10]; //10개의 각각의 숫자를 가져옴
        int gop = 1;              //입력받은 세개의 수의 곱을 구하기 위한 gop
        for(int i=0; i<3; i++){
            int num = 0;
            try{
                num = Integer.parseInt(br.readLine());
            } catch (IOException e){  //BufferedReader의 readLine()을 사용할 때 이걸 안해주면 오류가 남
                e.printStackTrace();  //이유는 아직 잘 이해가 안됨
            }
            gop = num*gop;            //세개의 수를 곱함
        }
        String num = Integer.toString(gop); //곱한 수를 문자열로 변환
        for(int i=0; i<10; i++){            //0~9의 개수를 구하기 위한 10번 반복
            int count = 0;                  //0~9의 개수를 각각 세어주기 위한 count
            for(int j=0; j<num.length(); j++){ //세수의 곱을 자리수 만큼 반복
                int n = num.charAt(j)-'0';     //첫번째 숫자부터 가져옴 char으로 가져왔으니 int로 변환해주기 위해 '0'을 뺴주는 편법을 사용함 
                if(n==i){                      //가져온 수가 0~9 각각의 수와 같으면 count값 증가
                    count++;
                }
            }
            list[i] = count;                   //완료된 count값을 list에 입력해줌
        }
        for( int a : list ){                   //구한 값을 출력해줌
            System.out.println(a);           
        }
    }
}

 

'Coding Test > Baekjoon' 카테고리의 다른 글

[백준] 3052 나머지, java  (0) 2020.12.21
[백준] 1546 평균, java  (0) 2020.12.21
[백준] 10817 세 수, java  (0) 2020.12.21
[백준] 1110 더하기 사이클, java  (0) 2020.12.21
[백준] 4344 평균은 넘겠지, java  (0) 2020.12.21