CS/알고리즘
[백준/JAVA] 2577번 : 숫자의 개수
코딩 펭귄
2021. 8. 22. 20:41
https://www.acmicpc.net/problem/2577
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numA = sc.nextInt();
int numB = sc.nextInt();
int numC = sc.nextInt();
String result = Integer.toString(numA*numB*numC);
int[] count = new int[10];
for(int i = 0; i < result.length(); i++) {
for (int j = 0; j < 10; j++) {
if (Character.getNumericValue(result.charAt(i)) == j) {
count[j]++;
}
}
}
for(int i = 0; i < count.length; i++) {
System.out.println(count[i]);
}
}
}
Character.getNumericValue() 메소드는 숫자 형태의 char를 int로 형변환해주는 메소드입니다.
예를 들어 '1'인 경우 int로 강제 형변환하여 대입하는 경우 1의 아스키코드 값인 49가 저장됩니다.
'1'을 숫자 1로 쓰기 위해서는 아스키코드를 다시 변환해 주어야 하는 것입니다.
이런 번거로움을 피하기 위해 사용하는 것이 바로 Character.getNumericValue() 메소드입니다.
Integer.parseInt()와 비슷한 기능을 하지만, Integer.parseInt()는 String에서만 사용이 가능하고,
Character.getNumericValue()는 char에서만 사용이 가능합니다.
출력 결과