내가 생각했을때 문제에서 원하는부분
The first line contains the lengths N and M, separated by a space.
A is given on the second and B on the third line.
The numbers will not have leading zeros.
Output the product of A and B without leading zeros.
내가 이 문제를 보고 생각해본 부분
입력 처리: BufferedReader를 사용하여 표준 입력에서 데이터를 효율적으로 읽어온다.
N, M 무시: 첫 줄의 N과 M 값은 문제 해결 로직에 필요 없으므로 읽기만 하고 사용하지 않는다.
큰 수 처리: 두 번째와 세 번째 줄에 입력되는 큰 정수 A와 B를 읽어 java.math.BigInteger 객체로 변환한다.
곱셈: BigInteger 객체의 multiply() 메소드를 사용하여 A와 B를 곱한다.
BigInteger는 내부적으로 큰 수 곱셈을 정확하게 처리한다.
결과 출력: 곱셈 결과를 toString() 메소드로 문자열로 변환하여 표준 출력으로 내보낸다.
BigInteger는 자동으로 선행 0 없이 결과를 제공해준다,
자원 해제: 사용한 BufferedReader 자원을 닫는다.
코드로 구현
package baekjoon.baekjoon_28;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
// 백준 22193번 문제
public class Main1010 {
public static void main(String[] args) throws IOException {
// BufferedReader를 사용하여 입력 읽기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 첫 번째 줄을 읽어서 버립니다. (N과 M)
br.readLine();
// 두 번째 줄에서 큰 정수 A를 읽어 BigInteger 객체로 생성합니다.
BigInteger a = new BigInteger(br.readLine());
// 세 번째 줄에서 큰 정수 B를 읽어 BigInteger 객체로 생성합니다.
BigInteger b = new BigInteger(br.readLine());
// BigInteger 클래스의 multiply 메소드를 사용하여 두 수를 곱합니다.
BigInteger result = a.multiply(b);
// 곱셈 결과를 문자열로 변환하여 출력합니다.
System.out.println(result.toString());
// BufferedReader를 닫습니다.
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.