[오늘의 백준] 8번째
08 Nov 2020“2577번”
단계별로 풀어보기
- 1차원 배열
- 숫자의 개수
문제 : 세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
입력 : 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.
출력 : 첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// 자연수 A, B, C를 곱한 결과값을 res 변수에 담는다.
int res = 1;
for (int i=0; i<3; i++) {
res *= Integer.parseInt(in.readLine());
}
// charAt() 메소드를 활용하기 위해 valueOf() 메소드로 int -> String 형변환
String strRes = String.valueOf(res);
int len = strRes.length();
// 출력값을 담을 배열 생성
int[] arr = new int[10];
// 0부터 9까지의 숫자가 몇 번 쓰였는지 연산
for (int i=0; i<len; i++) {
arr[strRes.charAt(i)-'0']++;
}
// 한 줄에 하나씩 출력
for (int i=0; i<10; i++) {
System.out.println(arr[i]);
}
}
}