본문 바로가기
백준

[백준] 1271번 : 엄청난 부자2 – JAVA [자바]

by Hongwoo 2022. 8. 2.
반응형

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

 

1271번: 엄청난 부자2

첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 1271번 엄청난 부자2는 브론즈 5 난이도의 수학 문제이다. 이 문제에서는 큰 숫자 n과 m이 입력으로 주이진다. 그리고 n과 m을 나눈 값과 그 나머지를 출력해주기만 하면 되는 간단한 문제이다. 하지만 이 문제는 난이도의 비해 정답율이 33% 정도로 매우 낮은 것을 확인할 수 있다. 이 이유는 이 문제는 큰 정수, 즉, int형이나 long형의 범위를 초과하는 숫자가 입력으로 주어지기 때문이다. 이 경우 BigInteger를 이용해야 한다.

 

BigInteger의 이론을 공부하고 싶으면 밑에 있는 링크를 참고하면 되겠다.

 

https://propercoding.tistory.com/33

 

[알고리즘] 큰 숫자 (정수) BigInteger 사용법 - JAVA [자바]

목차 BigInteger를 사용해야 하는 이유 가끔 알고리즘 문제들을 풀다 보면 큰 수를 처리해야 될 때가 있다. 여기서 큰 수란 int형의 범위를 넘어가고 심지어 long 형의 범위를 넘어갈 때이다. int형의

propercoding.tistory.com

 

이 문제의 해답은 간단하다. BigInteger형으로 n과 m을 우선 입력받는다. 그리고 BigInteger 클래스에 있는 divide 함수와 remainder 함수를 이용해서 n을 m으로 나눈 값과 나머지를 출력해주면 된다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.math.BigInteger;
import java.util.*;

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());
        //n과 m 입력받기
        BigInteger n = new BigInteger(st.nextToken());
        BigInteger m = new BigInteger(st.nextToken());
        System.out.print(n.divide(m) + "\n" + n.remainder(m));
    }
}

 

 

반응형

댓글