공부하는 블로그

Baekjoon | Q.2577 - 숫자의 개수 본문

알고리즘 공부

Baekjoon | Q.2577 - 숫자의 개수

치킨닮은닭 2019. 12. 20. 23:09
 

2577번: 숫자의 개수

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

www.acmicpc.net

  입력된 정수 A B C를 곱한 결과에 0부터 9까지의 숫자가 몇번 반복되는지 알아내는 문제이다. 

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		String abc = a * b * c + "";
		int[] count = new int[10];
		
		for (int i = 0; i < abc.length(); i++) {
			char num = abc.charAt(i);
			
			switch(num) {
			case '0':	count[0]++;
						break;
			case '1':	count[1]++;
						break;
			case '2':	count[2]++;
						break;
			case '3':	count[3]++;
						break;
			case '4':	count[4]++;
						break;
			case '5':	count[5]++;
						break;
			case '6':	count[6]++;
						break;
			case '7':	count[7]++;
						break;
			case '8':	count[8]++;
						break;
			case '9':	count[9]++;
						break;
			}
		}

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

}

 

 처음에는 모든 조건을 분기해서 풀었는데 배열의 index에 num을 넣어서 하나씩 증가시키면 될 것 같아서 다시 풀었다.

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		String abc = a * b * c + "";
		int[] count = new int[10];
		
		for (int i = 0; i < abc.length(); i++) {
			int num = Integer.parseInt(abc.charAt(i) + "");
			count[num]++;
		}

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

}

 

Comments