예를 들면 , 158 266 427 = 17037300 이 되므로, 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰인 것이다.
Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); String result = String.valueOf((a*b*c)); int[] arr = new int[10]; String str = "0123456789";
a,b,c 값을 각각 Scanner로 입력 받은 후에, result 변수에 a,b,c를 곱한 결과를 문자열로 만든다.
그리고 0~9 까지 총 10개의 숫자의 사용 빈도수를 체크할 배열 arr을 선언해주고, 한자리씩 잘라서 비교할 문자열 str을 선언해준다.
for(int i=0; i<str.length(); i++) { for(int j=0; j<result.length(); j++) { if(str.charAt(i) == result.charAt(j)) { arr[i] += 1; } } }
str의 길이 만큼 for문을 반복하고 또 그 안에서 이중 for문으로, charAt() 메서드로 한 글자씩 잘라서 비교해준다. 만약 비교해서 똑같은 값이 나온다면 arr 배열에 1을 더한다.
예를 들면 str.charAt(0) = '0' 이다, '0'이 result안에 몇개 포함되어 있는지 세서 arr배열에 저장해주는 것이다. arr[0]은 0이 몇개 포함되어 있는지 센 갯수 이므로 1,2,3, 숫자가 늘어날 때마다 따로 배열에 저장되게 된다(인덱스 별로)
for(int i=0; i<arr.length; i++) { System.out.println(arr[i]); }
인덱스 별로 출력해주는 코드다.
0~9 까지 사용빈도수를 반복문으로 뽑아내어 준다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); String result = String.valueOf((a*b*c)); int[] arr = new int[10]; String str = "0123456789"; for(int i=0; i<str.length(); i++) { for(int j=0; j<result.length(); j++) { if(str.charAt(i) == result.charAt(j)) { arr[i] += 1; } } } for(int i=0; i<arr.length; i++) { System.out.println(arr[i]); } } }