백준 Multiply

KIMYEONGJUN·2025년 5월 3일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글