세 개의 자연수 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번 쓰였다.
150
266
427
3
1
0
2
0
0
0
2
0
0
BufferedReader.readLine()
으로 정수를 입력받는다.a*b*c
값을 String.valueOf()
또는 Integer.toString()
을 이용하여 String 타입으로 변환한다. (택1)for
문 이용BufferedWriter.write()
를 이용하여 출력한다.(char)(숫자 + '0')
'0'
을 더해준다.Character.forDigit(숫자, 진법)
char
값을 얻을 수 있는 방법null
반환Integer.toString(숫자).charAt(0)
toString()
: int
→ String
charAt()
: String
→ char
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
int c = Integer.parseInt(br.readLine());
int val = a*b*c; // 입력받은 값 곱하기
// int → String
String s = String.valueOf(val); // 방법1
// String s = Integer.toString(val); // 방법2
int[] num = new int[s.length()]; // 추출한 각 자리의 숫자를 저장할 배열
int[] cnt = new int[10]; // 추출한 숫자가 쓰인 횟수 저장할 배열
for(int i=0; i<num.length; i++) {
num[i] = s.charAt(i)-'0'; // 문자열에서 각 자리 수 추출
cnt[num[i]]++; // 추출한 숫자의 자리(cnt[추출한 값])에 횟수 증가
}
for(int i=0; i<cnt.length; i++) {
// int → char
bw.write((char)(cnt[i]+'0')); // 방법1
// bw.write(Character.forDigit(cnt[i], 10)); // 방법 2
// bw.write(Integer.toString(cnt[i]).charAt(0); // 방법 3
bw.newLine();
}
bw.flush();
bw.close();
}
}