본문 바로가기
🥇Problem Solving (psS2mj)/BOJ

[BOJ] 10757. 큰 수 A+B (Java)

by psS2mj 2020. 4. 16.
반응형

문제 링크 / level: Bronze V

https://www.acmicpc.net/problem/10757

 

10757번: 큰 수 A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

내가 생각한 풀이

피보나치 수 시리즈 중 [10826. 피보나치 수 4] 문제를 풀어보려고 했는데, 숫자의 범위가 long type으로 커버가 안 될만큼 커졌다. 그래서 도저히 이 문제에 어떻게 접근해야 하는지조차 감이 잡히질 않아서 질문 검색을 통해 이런 저런 의견을 읽어보던 중, 누군가가 바로 이 문제(10757. 큰 수 A+B)는 풀어보았느냐- 이 문제부터 풀어봐라-라고 해서 도전해봤다. 이런건 남의 말 참 잘 듣쥬?😎

 

문제의 핵심 (출처: BOJ)

문제는 굉장히 단순하다. 그냥 input으로 주어지는 A와 B를 더한 결과값을 출력해주면 끝이다.

하지만 진짜 문제는???!! 그 숫자가 너무 커서 long type으로도 받아낼 수가 없다는 것!!

 

출처: Java Platform SE 8

이런저런 검색을 해본 결과 다행히(?) JAVA에서는 long type보다도 훨씬 큰 수들을 위한 BigInteger 클래스가 존재해서 이 클래스 내의 메소드들을 활용할 수가 있었다. 참고로 다른 언어의 경우에는 String으로 시작해서 직접 어쩌구 저쩌구 해줘야 한다고 하니 감사한 마음을 가지고 사용하도록 하자^_^

 

출처: Java Platform SE 8

특히 이 문제에서는 A+B 연산을 수행하는 것이 목표이므로, BigInteger 클래스의 add 메소드를 활용하면 게임 끝이다🤗👊

 

이제 코드를 작성해보자!!

// 핵심 코드
static BigInteger A, B;
public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	A = sc.nextBigInteger();
	B = sc.nextBigInteger();
	System.out.println(A.add(B));
}

입력되는 숫자를 받을 변수 A와 B를 BigInteger type(정확히는 타입은 아니지만,,,)으로 선언한 뒤에, 아까 Java API 문서에서 봤던 add 메소드를 활용해주면 문제를 손쉽게 해결할 수 있다.

문제 해결 완료!!

 

이런 클래스가 존재한다는 것을 모른다면 아마 풀기 어려웠겠지.. 역시 아는 만큼 보인다는 말은 진리 중의 진리!!

오늘도 이렇게 (사실 9일 전에 풀었지만^_^) 또 하나의 지식을 얻어갑니다... 총총총..👩👋

 

 

과연 만두는 이제 [10826. 피보나치 수 4] 문제를 풀 수 있을 것인가? (두둥)

- 피보나치 수 시리즈는 계속된다, to be continued... -

반응형

댓글