728x90
프로그래머스 _ 코딩 기초 트레이닝 DAY 22 - (2)
출처 - https://school.programmers.co.kr/learn/courses/30/lessons/181846
문제 | 0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.
(1 <= a,b의 길이 <= 100,000)
입력 #1 | "18446744073709551615"
출력 #1 | 18446744073709551615
>> 풀이 <<
자릿수가 100,000 이면 int나 long에 담을 수 없는 크기이다. 그래서 찾아보았는데, BigInteger라는 클래스가 있다고 한다.
사용시에는 import java.math.BigInteger 을 선언해야 한다.
BigInteger은 정수의 크기에 제한을 두지 않아서 매우 큰 값을 다룰 수 있다. 정수형으로의 타입 변환이 필요하지 않으며, 문자열 형태로 숫자를 입력받아 내부적으로 해당 문자열을 정수로 변환하여 처리한다.
사칙연산의 경우에는 별도의 메소드가 있다.
- 덧셈 : numA.add(numB)
- 뺄셈 : numA.subtract(numB)
- 곱셈 : numA.multiply(numB)
- 나눗셈 : numA.divide(numB)
코드는 아래와 같다.
import java.math.*;
class Solution {
public String solution(String a, String b) {
BigInteger aa = new BigInteger(a);
BigInteger bb = new BigInteger(b);
return String.valueOf(aa.add(bb));
}
}
'코딩테스트 > 프로그래머스 Lv.0' 카테고리의 다른 글
[프로그래머스] 전국 대회 선발고사 (이차원 배열 정렬) - JAVA (0) | 2023.10.15 |
---|---|
[프로그래머스] 뒤에서 5등 위로 (copyOfRange, stream.skip) - JAVA (0) | 2023.10.15 |
[프로그래머스] 무작위로 K개의 수 뽑기 (stream.distinct()) - JAVA (0) | 2023.10.14 |
[프로그래머스] 빈 배열에 추가, 삭제하기 (Stack) - JAVA (0) | 2023.10.14 |
[프로그래머스] 문자열 바꿔서 찾기 (str.contains) - JAVA (0) | 2023.10.13 |