728x90
반응형
문제
세 개의 자연수 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번 쓰였다.
입력
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
String sum = String.valueOf(a*b*c);
String[] sum2 = sum.split("");
int[] arr = new int[10];
for (int i = 0; i < sum2.length; i++){
arr[Integer.valueOf(sum2[i])]++;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
1.
String sum = String.valueOf(a*b*c);
String[] sum2 = sum.split("");
입력받은 3개의 자연수를 모두 곱한 값을 sum안에 넣고 이를 split해주어 배열 sum2 안에 넣는다.
2.
int[] arr = new int[10];
for (int i = 0; i < sum2.length; i++){
arr[Integer.valueOf(sum2[i])]++;
}
0~9까지 개수를 카운트해줄 arr 배열을 만든다.
sum2의 길이만큼 for문을 돌리고,
arr 배열 안에 sum2[i] 값에 해당하는 인덱스를 찾기위해 arr[sum2[i]] 를 하여 숫자를 +1씩 카운트 해준다.
3.
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
arr 안에 있는 숫자를 출력해주기 위해서 arr길이만큼 for문을 돌려준다.
728x90
반응형
'백준' 카테고리의 다른 글
[JAVA] 백준 2884번 알람 시계 (0) | 2023.03.10 |
---|---|
[JAVA] 백준 2742번 기찍 N (0) | 2023.03.10 |
[JAVA] 백준 2439번 별 찍기 - 2 (2) | 2023.03.10 |
[JAVA] 백준 1546번 평균 (0) | 2023.03.10 |
[JAVA] 백준 11720번 숫자의 합 (0) | 2023.03.07 |