본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - 두 수의 합

https://school.programmers.co.kr/learn/courses/30/lessons/181846

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

정답 

 

import java.math.*;

class Solution {
    public String solution(String a, String b) {
        String answer = "";
        
        BigInteger A = new BigInteger(a);
        BigInteger B = new BigInteger(b);
        BigInteger Sum = A.add(B);
        
        answer = Sum.toString();
        
        return answer;
    }
}

 

 

BigInteger 클래스 

[Java] 큰 숫자(정수) 다루기 BigInteger 사용법 & 예제 총정리 (tistory.com)

 

[Java] 큰 숫자(정수) 다루기 BigInteger 사용법 & 예제 총정리

BigInteger를 사용해야 하는 이유 Type 범위 int -2,147,483,648 ~ 2,147,483,647 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 int는 메모리 크기는 4byte로 표현할 수 있는 범위는 -2,147,483,648 ~ 2,147,483,647이고 long

coding-factory.tistory.com

 

- java.math 패키지

 

1) BigInteger 선언 

 

- BigInteger을 초기화하기 위해서는 문자열을 인자 값으로 넘겨주어야 함 

BigInteger bigNumber = new BigInteger("10000");

 

 

2) BigInteger 계산 

 

- BigInteger 내부의 숫자를 계산하기 위해서는 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));

 

 

3) BigInteger 형 변환 

 

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

 

 

4) BigInteger 두 수 비교 

 

- BigInteger의 값을 비교할 때는 compareTo라는 메서드를 사용 

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