728x90
반응형
2024.07.26기준 - 브론즈2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 입력받은 3개의 수를 곱한 다음 0 ~ 9까지의 숫자를 몇 번 사용했는지 출력하는 문제입니다.
최대로 입력 받을 수 있는 수가 1000000이기 때문에 큰 수를 연산하는 BigInteger을 사용하여 문제에 접근했습니다.
1. 입력받은 3개의 수를 BigInteger로 곱하기 연산을 하여 저장합니다.
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
int c = Integer.parseInt(br.readLine());
// 최대값을 입력받으면 값이 크기 때문에 BigInteger로 입력 받기
BigInteger mul = BigInteger.valueOf(a).multiply(BigInteger.valueOf(b)).multiply(BigInteger.valueOf(c));
2. 연산된 값을 char[] 변환해 개수를 새어줍니다.
int[] counts = new int[10];
char[] marr = String.valueOf(mul).toCharArray(); // 3개의 수를 곱한 수를 char[] 으로 변환
// 개수 새기
for (int i = 0; i < marr.length; i++) {
counts[marr[i] - '0']++;
}
char는 숫자로 표현하면 아스키 코드로 들어오기 때문에 '0'은 숫자로 48을 의미합니다.
그래서 - '0'을 해 0은 0, 1은 1이 들어가게 개수를 새어줍니다.
3. 완료된 연산을 차례로 출력해줍니다.
// 출력
for (int count : counts) {
sb.append(count).append("\n");
}
코드
package Main;
import java.io.*;
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
int c = Integer.parseInt(br.readLine());
// 최대값을 입력받으면 값이 크기 때문에 BigInteger로 입력 받기
BigInteger mul = BigInteger.valueOf(a).multiply(BigInteger.valueOf(b)).multiply(BigInteger.valueOf(c));
int[] counts = new int[10];
char[] marr = String.valueOf(mul).toCharArray(); // 3개의 수를 곱한 수를 char[] 으로 변환
// 개수 새기
for (int i = 0; i < marr.length; i++) {
counts[marr[i] - '0']++;
}
// 출력
for (int count : counts) {
sb.append(count).append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 1541번 잃어버린 괄호 (0) | 2024.07.28 |
---|---|
BAEKJOON / 백준 - JAVA 11403번 경로 찾기 (0) | 2024.07.27 |
BAEKJOON / 백준 - JAVA 1004번 어린 왕자 (2) | 2024.07.26 |
BEAKJOON / 백준 - JAVA 32025번 체육은 수학과목 입니다 (0) | 2024.07.26 |
BEAKJOON / 백준 - JAVA 31995번 게임말 올려놓기 (0) | 2024.07.25 |