Hennie
[백준] 2577번 : 숫자의 개수 (JAVA) 본문
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까지 숫자가 몇 번 쓰였는지 저장할 배열을 새로 생성해서 저장 후 출력해주면 코드가 훨씬 예뻐진다!
'BaekJoon > 05. 1차원 배열' 카테고리의 다른 글
[백준] 3052번 : 나머지 (JAVA) (0) | 2021.04.27 |
---|---|
[백준] 2562번 : 최댓값 (JAVA) (0) | 2021.04.25 |
[백준] 10818번 : 최소, 최대 (JAVA) (0) | 2021.04.25 |