본문 바로가기

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

백준(BaekJoon) 2577번 1차원 배열_숫자의 개수

문제

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

 

2577번: 숫자의 개수

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

www.acmicpc.net


package baekjoon_6;
import java.util.Scanner;

public class Count {
	public static void main(String[] args) {
		//get number A
		 Scanner input = new Scanner(System.in);
		 System.out.println("A를 입력하세요: ");
		 int A = input.nextInt();

		 while(A < 100 || A >= 1000) {
			 System.out.println("A를 다시 입력하세요: ");
			 A = input.nextInt();
		 }

		 //get number B
		 System.out.println("B를 입력하세요: ");
		 int B = input.nextInt();

		 while(B < 100 || B >= 1000) {
			 System.out.println("B를 다시 입력하세요: ");
			 B = input.nextInt();
		 }

		 //get number C
		 System.out.println("C를 입력하세요: ");
		 int C = input.nextInt();

		 while(C < 100 || C >= 1000) {
			 System.out.println("C를 다시 입력하세요: ");
			 C = input.nextInt();
		 }
		 
		 //Separate each numbers
		 int lastnum = A*B*C;
		 
		 int num[] = new int[9];
		 int divide = 100000000;
		 int i = 0;
		 for(;i < num.length ; i++) {
			 num[i] = lastnum/divide;
			 lastnum = lastnum - num[i]*divide;
			 divide = divide/10;
		 }
		 
		 //find the starting point of lastnum
		 for(i=0; num[i] == 0 ; i++);
		 
		 //count and print the number of lastnum's numbers
		 int count[] = new int[10];
		 for(; i<num.length ; i++) {
			 count[num[i]]++;
		 }
		 for(i=0; i < count.length ; i++) System.out.println(count[i]);
		 
		 
		 
	}
}