문제
돈 N을 M명에게 균등하게 나눌 때, 한 명이 받는 금액과 나머지를 구하라. N과 M은 매우 큰 수이다.
입력
첫째 줄에 N과 M이 주어진다 (1 이상 10^1000 이하).
출력
첫째 줄에 몫, 둘째 줄에 나머지를 출력한다.
예제
| 입력 | 출력 |
|---|---|
1000 3 | 333 1 |
풀이
BigInteger를 사용하여 큰 수의 나눗셈과 나머지 연산을 수행한다.
- N과 M을 BigInteger로 입력받는다
divide로 몫,remainder로 나머지를 구한다
핵심 아이디어: 10^1000까지의 수는 기본 자료형으로 표현 불가능하므로 BigInteger를 사용한다.
코드
package day499;
import java.math.*;
import java.util.*;
public class Day493BOJ1271엄청난부자2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger n = in.nextBigInteger();
BigInteger m = in.nextBigInteger();
in.close();
System.out.println(n.divide(m));
System.out.println(n.remainder(m));
}
}복잡도
- 시간: O(1) - BigInteger 연산
- 공간: O(1)