나를 기록하다
article thumbnail
반응형
백준 2338번 긴자리 계산

 

코드

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 클래스의 특징
    1. 큰 정수 표현: 기본 정수형 변수인 int나 long의 범위를 초과하는 정수값도 처리 가능
    2. 정밀도 유지: 매우 큰 정수를 다룰 때에도 정확한 연산 결과 제공
    3. 불변성: 객체가 생성된 후에는 내부의 값을 변경할 수 없다. 연산 결과로 새로운 BigIntger 객체가 생성
    4. 다양한 연산 지원: 다양한 산술, 비교, 비트 연산 지원(덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산, 크기 비교, 동등성 비교, 비트 단위 연산 등 제공)
  • Biginteger 클래스의 사용 방법
    1. BigInteger 객체 생성: 정수 리터럴, 문자열, 다른 BigInteger 객체 등을 인자로 전달하여 BigInteger 객체를 생성할 수 있다.
    2. 연산 수행: 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈 등)과 비트 연산(AND, OR, XOR 등) 수행 가능
    3. 결과 출력: BigInteger 객체의 값을 출력할 때에는 'toString()' 메서드를 사용하여 문자열로 변환한 후 출력 가능

 

반응형
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...