seong
백준 2577번 본문
풀이
- 곱한 결과 값을 result에 저장
- 배열의 크기는 0~9 → 크기는 10으로 선언
- resultr값을 문자형으로 변환 하여 str에 저장
- 결과 값의 길이만큼 반복 하는 for문
- 0~9 까지 숫자를 찾기 위한 중첩 반복문
- str.charAt(i) - ‘0’ ⇒ 문자열의 i번째 자릿수를 정수형으로 형 변환 시켜주는 식 ( charAt(i) - ‘0’ 은 아스키 코드를 참조 )
- str.charAt(i)값이 j와 같다면 arr[j]번 자리에 1을 증가시킨다.(배열의 크기만 선언하면 초기값은 0)
import java.util.Arrays;
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();
int result = a * b * c;
int arr [] = new int[10];
String str = Integer.toString(result);
for(int i = 0; i < str.length();i++){// str의 길이 만큼 반복
for(int j =0; j <10; j++){
if((str.charAt(i) - '0') == j){
//str.charAt(i)의 값이 정수로 변환 했을때 == j 와 같을 경우
//charAt(i) - '0'은 정수 값으로 반환해주는 메소드이다.
++arr[j];
break;
}
}
}
for(int i =0; i < 10; i++){
System.out.println(arr[i]);
}
}
}