728x90
https://www.acmicpc.net/problem/1271
1271번: 엄청난 부자2
첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)
www.acmicpc.net
BigInteger
문제를 푸는 방법 자체는 /과 % 연산이면 끝이기 때문에 굉장히 쉬워보이지만, N과 M의 범위가 최대 10^1000라는 난점이 있다. 이전에 13458번 : 시험감독에서 Integer와 Long의 범위를 확인했었다.
Integer와 Long 범위
Integer | 32bits | -2,147,483,648 ~ 2,147,483,647 |
Long | 64bits | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
아무리 Long이더라도 최대 약 9 * 10^18 으로 10^1000은 표시할 수 없기 때문에, 이럴 때에는 BigInteger를 사용해야 한다.
BigInteger의 경우 문자열 기반이기 때문에 /, %와 같은 기호로 계산할 수 없고 내장함수인 divide와 remainder를 사용한다.
전체 코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
BigInteger N = new BigInteger(st.nextToken());
BigInteger M = new BigInteger(st.nextToken());
System.out.println(N.divide(M));
System.out.println(N.remainder(M));
}
}
반응형
'JAVA > 문제 풀이' 카테고리의 다른 글
[백준 / BOJ] 6087번 : 레이저 통신 - JAVA (0) | 2023.08.29 |
---|---|
[백준 / BOJ] 17484번 : 진우의 달 여행 (Small) - JAVA (0) | 2023.08.28 |
[백준 / BOJ] 12100번 : 2048 (Easy) (JAVA) (0) | 2023.08.27 |
[백준 / BOJ] 2515번 : 전시장 (JAVA) (0) | 2023.08.26 |
[백준 / BOJ] 13460번 : 구슬 탈출2 (JAVA) (0) | 2023.08.26 |