BaekJoon/05. 1차원 배열
[백준] 2577번 : 숫자의 개수 (JAVA)
헨니
2021. 4. 27. 23:13
QUESTION
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까지 숫자가 몇 번 쓰였는지 저장할 배열을 새로 생성해서 저장 후 출력해주면 코드가 훨씬 예뻐진다!