Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Hennie

[백준] 2577번 : 숫자의 개수 (JAVA) 본문

BaekJoon/05. 1차원 배열

[백준] 2577번 : 숫자의 개수 (JAVA)

헨니 2021. 4. 27. 23:13

 

QUESTION

www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

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

www.acmicpc.net

 

ANSWER

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int a = Integer.parseInt(br.readLine());
		int b = Integer.parseInt(br.readLine());
		int c = Integer.parseInt(br.readLine());
		
		String mul = Integer.toString(a * b * c);	// 17037300
		String[] arr = mul.split("");
		
		int zero = 0;
		int one = 0;
		int two = 0;
		int three = 0;
		int four = 0;
		int five = 0;
		int six = 0;
		int seven = 0;
		int eight = 0;
		int nine = 0;
		
		for(int i=0; i<arr.length; i++) { // 개못생김.... 다른 방법....
			if(arr[i].equals("0")) {
				zero++;
			} else if(arr[i].equals("1")) {
				one++;
			} else if(arr[i].equals("2")) {
				two++;
			} else if(arr[i].equals("3")) {
				three++;
			} else if(arr[i].equals("4")) {
				four++;
			} else if(arr[i].equals("5")) {
				five++;
			} else if(arr[i].equals("6")) {
				six++;
			} else if(arr[i].equals("7")) {
				seven++;
			} else if(arr[i].equals("8")) {
				eight++;
			} else if(arr[i].equals("9")) {
				nine++;
			}
		}
		sb.append(zero).append("\n");
		sb.append(one).append("\n");
		sb.append(two).append("\n");
		sb.append(three).append("\n");
		sb.append(four).append("\n");
		sb.append(five).append("\n");
		sb.append(six).append("\n");
		sb.append(seven).append("\n");
		sb.append(eight).append("\n");
		sb.append(nine);
		
		System.out.println(sb);
	}
}

 

RESULT

 

MEMO

일단 머리에 떠오른 대로 풀었는데 풀고 보니 너무 난잡하고 못생긴 코드가 돼버렸다.. 배열을 쓰면 됐을텐데 왜 저렇게 풀었을까..

 

아래 코드처럼 0~9까지 숫자가 몇 번 쓰였는지 저장할 배열을 새로 생성해서 저장 후 출력해주면 코드가 훨씬 예뻐진다!