문제
갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다.
그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다.
프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다.
한 생명체에게 얼마씩 돈을 줄 수 있는가?
또, 생명체들에게 동일하게 분배한 후 남는 돈은 얼마인가?
입력
첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)
출력
첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1원씩 분배할 수 없는 남는 돈을 출력한다.
예제 입력 1
1000 100
예제 출력 1
10 0
이 문제를 처음 풀 때 int 형으로 값을 받아서 출력했더니 런타임 에러가 발생했다.
int 대신에 BigInteger을 사용해서 런타임 에러를 해결할 수 있었다.
BigInteger은 자주 사용해보지 않아서 익숙하지 않았다. BigInteger은 문자열이기 때문에 사칙연산이 바로 되지 않는다.
그래서 사칙연산을 하기 위해서는 BIgInteger 클래스 내부에 있는 메소드를 사용해야 한다.
이번 문제에서는 divide와 mod 메소드를 사용했다.
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger n = sc.nextBigInteger();
BigInteger m = sc.nextBigInteger();
BigInteger divRes = n.divide(m);
BigInteger modRes = n.mod(m);
System.out.println(divRes);
System.out.println(modRes);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준]자바_2845번_파티가 끝나고 난 뒤 (0) | 2021.04.27 |
---|---|
[백준]자바_2475번_검증수 (0) | 2021.04.22 |
[백준]자바_2338번_긴자리 계산 (0) | 2021.04.22 |
[백준]자바_1550번 16진수 (0) | 2021.04.22 |
[백준]자바_2750번_수 정렬하기 (0) | 2021.03.15 |