안녕하세요. BeyondTheClouds 입니다.
이번에 풀어볼 문제는 2338번 긴자리 계산 입니다.

해당 문제는 입력값이 매우 큰 경우가 존재하기때문에 int형이나 long형으로는 감당할 수 없는 문제였습니다.
문제 해결을 위해 BigInteger을 이용하였습니다.
BigInteger란?
int형, long형 등과 달리 문자열 형태로 이루어져 무한으로 표현할 수 있습니다.
BigInteger 선언방법
import java.math.BigInteger; ... BigInteger a = scanner.nextBigInteger();
BigInteger 연산방법
문자열 형태이기 때문에 단순 연산 기호를 통해 사칙연산을 할 수 없습니다.
따라서, BigInteger 클래스 내부의 메소드를 이용해야 합니다.덧셈 : add() 뺄셈 : subtract() 곱셈 : multiply() 나눗셈 : divide() 나머지 : mod()
제가 작성한 코드는 아래와 같습니다.
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
★ 제가 푼 방법이 항상 정답은 아닙니다. 더 좋은 방법이 있다면 댓글로 알려주세요! ★