[백준] 2338번 긴자리 계산 문제풀이 | BigInteger | Java | 자바

BeyondTheClouds·2025년 1월 2일

BAEKJOON | Java

목록 보기
46/140

안녕하세요. BeyondTheClouds 입니다.

Problem.

이번에 풀어볼 문제는 2338번 긴자리 계산 입니다.

해당 문제는 입력값이 매우 큰 경우가 존재하기때문에 int형이나 long형으로는 감당할 수 없는 문제였습니다.
문제 해결을 위해 BigInteger을 이용하였습니다.

BigInteger란?
int형, long형 등과 달리 문자열 형태로 이루어져 무한으로 표현할 수 있습니다.

BigInteger 선언방법

import java.math.BigInteger;
...
BigInteger a = scanner.nextBigInteger(); 

BigInteger 연산방법
문자열 형태이기 때문에 단순 연산 기호를 통해 사칙연산을 할 수 없습니다.
따라서, BigInteger 클래스 내부의 메소드를 이용해야 합니다.

덧셈 : add()
뺄셈 : subtract()
곱셈 : multiply()
나눗셈 : divide()
나머지 : mod()

Code.

제가 작성한 코드는 아래와 같습니다.

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        BigInteger a = scanner.nextBigInteger();
        BigInteger b = scanner.nextBigInteger();
        
        System.out.println(a.add(b));
        System.out.println(a.subtract(b));
        System.out.println(a.multiply(b));
    }
}

마지막으로 위 문제의 링크 남겨두도록 하겠습니다!
https://www.acmicpc.net/problem/2338

★ 제가 푼 방법이 항상 정답은 아닙니다. 더 좋은 방법이 있다면 댓글로 알려주세요! ★

profile
개발자가 되고싶어요

0개의 댓글