[Java] 백준 10757번: 큰 수 A+B

U·2023년 3월 5일

백준

목록 보기
19/116

💻 문제


일단 이해하자🤔

  • 11382번 꼬마정민이 문제에서는 long 타입을 써야하는 걸 int형으로 써서 틀렸던 기억이 나서 이번엔 범위를 자세히 보고 푸려했다.
  • long의 최댓값을 찾아보니 9223372036854775807이라고 하는데 예제는 92233720368547758079223372036854775808를 계산한다. 즉 long보다 더 큰 범위를 표현할 수 있는 BigInteger를 사용하기로 했다.
  • BigIntegernew BigInteger()로 선언해주고 직접 연산을 하지는 못해서 add(), subtract(), multiply()와 같은 함수를 사용해서 연산을 해줘야한다.

👀 풀이

import java.io.*;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        String str = bfr.readLine();
        StringTokenizer st = new StringTokenizer(str, " ");

        BigInteger A = new BigInteger(st.nextToken());
        BigInteger B = new BigInteger(st.nextToken());

        bfw.write(String.valueOf(A.add(B)));

        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

💡 결과


아쉬웠던 점••

  • BigDecimal을 사용해본 적은 있었으나 오랫동안 사용하지 않아 잊고 있었는데 이러한 큰 범위의 수를 다루는 방법에 익숙해져야겠다.
profile
백엔드 개발자 연습생

0개의 댓글