https://www.acmicpc.net/problem/2577
세 정수를 입력 받아 그 세 정수의 곱을 구한 뒤, 결과값의 각 숫자들이 몇번이 나왔는지를 구하는 문제.
0~9까지 담을 배열을 먼저 만들어 준다. 그리고 index를 나타낼 변수 arr를 선언.
a, b, c를 곱한 값을 String으로 변환해야하는데 그 이유는 숫자 하나하나씩을 분리해서 count를 해야하기 때문!
String 타입으로 바뀐 곱셈값을 하나씩 가져와서 다시 숫자로 변환 후 count 배열에 개수를 +1 해준다.
만약에 1733이라는 곱셈값이 있다면 count[1] = 1, count[3] = 2, count[7] = 1 이라는 결과가 될 것.
📌 int형을 String으로 바꾸는 방법에는 여러가지가 있다.
1. 숫자 뒤에 큰 따옴표를 붙이는 것 → String num = (abc) + "";
2. toString()을 활용할 것 → String num = Integer.toString(abc);
3. valueOf()를 활용할 것 → String num = String.valueOf(abc);
import java.util.Scanner;
public class Q_2577 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
//0~9까지 담을 배열
int[] count = new int[10];
int arr = 0;
String num = String.valueOf(a*b*c);
for(int i = 0; i < num.length(); i++) {
// 문자열을 int로 변환
arr = (num.charAt(i) - '0');
count[arr]++;
}
for(int k : count) {
System.out.println(k);
}
sc.close();
}
}