22.4.29 [HackerRank]Java Biginteger

서태욱·2022년 4월 30일
0

Algorithm

목록 보기
21/45
post-thumbnail

✅ 문제 분석

이 문제에서는 큰 수를 더하거나 곱한다.
숫자가 너무 커서 long integer 같은 데이터 타입으로는 담을 수 없는 정도다.
자바 BigInteger 클래스의 빠와를 통해서 이 문제를 해결해보자!

두줄에 a,b 숫자가 주어진다. 두 숫자는 음이 아닌 정수이고
최대 200 digit이다.

첫번째 줄에는 두 수의 합이
두번째 줄에는 두 수의 곱이 출력되면 된다.

🌱 배경지식

단순 덧셈, 곱셈 문제인 것 같다.
자바에 있는 BigInteger는 int(-2,147,483,648 ~ 2,147,483,647)나 long(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)의 범위를 넘어서는 아주 큰 숫자랄 다루어야 할 때 사용하는 클래스다.

숫자가 문자열 형태로 이루어져 범위가 무한해 어떠한 숫자든 담을 수 있다고 한다.

BigInteger 계산

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");
		
System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));
System.out.println("뺄셈(-) :" +bigNumber1.subtract(bigNumber2));
System.out.println("곱셈(*) :" +bigNumber1.multiply(bigNumber2));
System.out.println("나눗셈(/) :" +bigNumber1.divide(bigNumber2));
System.out.println("나머지(%) :" +bigNumber1.remainder(bigNumber2));

BitInteger 형 변환

BigInteger bigNumber = BigInteger.valueOf(100000); //int -> BigIntger

int int_bigNum = bigNumber.intValue(); //BigIntger -> int
long long_bigNum = bigNumber.longValue(); //BigIntger -> long
float float_bigNum = bigNumber.floatValue(); //BigIntger -> float
double double_bigNum = bigNumber.doubleValue(); //BigIntger -> double
String String_bigNum = bigNumber.toString(); //BigIntger -> String

BitInteger 두 수 비교

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("1000000");
		
//두 수 비교 compareTo 맞으면 0   틀리면 -1
int compare = bigNumber1.compareTo(bigNumber2);
System.out.println(compare);

✏️ 해설

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

public class JavaBigInteger {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
     Scanner sc = new Scanner(System.in);
     
     BigInteger int1 = new BigInteger(sc.nextLine());
     BigInteger int2 = new BigInteger(sc.nextLine());
     
     System.out.println(int1.add(int2));
     System.out.println(int1.multiply(int2));    
 }
}

👉 참고

profile
re:START

0개의 댓글