반응형
코드
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// A에 대한 BigInteger 입력 받기
BigInteger A = in.nextBigInteger();
// B에 대한 BigInteger 입력 받기
BigInteger B = in.nextBigInteger();
// A와 B의 합 출력
System.out.println(A.add(B));
// A에서 B를 뺀 값 출력
System.out.println(A.subtract(B));
// A와 B의 곱 출력
System.out.print(A.multiply(B));
}
}
풀이
int의 범위는 -2,147,483,648~2,147,483,647로 문제에서는 1000자리를 넘지 않는 수를 표현하기엔 부족하다. 따라서 BigInteger을 사용하여 문제를 풀었다. BigInteger에 대한 설명을 아래에 추가하겠다.
- Biginteger란?
자바의 내장 클래스로, 정수형 데이터를 임의의 크기로 표현할 수 있도록 설계된 클래스이다. 일반적인 정수형 변수가 표현할 수 있는 범위를 초과하는 매우 큰 정수값을 다룰 수 있다.(사실상 무한대)
- Biginteger 클래스의 특징
- 큰 정수 표현: 기본 정수형 변수인 int나 long의 범위를 초과하는 정수값도 처리 가능
- 정밀도 유지: 매우 큰 정수를 다룰 때에도 정확한 연산 결과 제공
- 불변성: 객체가 생성된 후에는 내부의 값을 변경할 수 없다. 연산 결과로 새로운 BigIntger 객체가 생성
- 다양한 연산 지원: 다양한 산술, 비교, 비트 연산 지원(덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산, 크기 비교, 동등성 비교, 비트 단위 연산 등 제공)
- Biginteger 클래스의 사용 방법
- BigInteger 객체 생성: 정수 리터럴, 문자열, 다른 BigInteger 객체 등을 인자로 전달하여 BigInteger 객체를 생성할 수 있다.
- 연산 수행: 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈 등)과 비트 연산(AND, OR, XOR 등) 수행 가능
- 결과 출력: BigInteger 객체의 값을 출력할 때에는 'toString()' 메서드를 사용하여 문자열로 변환한 후 출력 가능
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] Binary Search (1) | 2024.01.30 |
---|---|
[Algorithm] 우선순위 큐(Priority Queue) (0) | 2023.09.05 |
[백준 2309 파이썬/python] 일곱 난쟁이 (1) | 2023.05.17 |
[백준 10812 파이썬/python] 바구니 순서 바꾸기 (0) | 2023.05.17 |
[백준 17404 파이썬/python] RGB거리 2 (0) | 2023.05.17 |