본문 바로가기

알고리즘/🥉 브론즈

백준 1271 엄청난 부자2 자바 풀이

728x90

난이도 : 브론즈5

풀이일 : 05033

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

 

1271번: 엄청난 부자2

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

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐


1차 시도 오답 -> 런타임 에러

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int total = scan.nextInt();
		int people = scan.nextInt();
		scan.close();
		
		System.out.println(total/people);
		System.out.println(total%people);
	}
}

 

틀린 이유

  • int의 숫자 범위가 문제 풀이에 충분하지 않아 다른 방법이 필요했다.

최종 정답

import java.util.*;
import java.math.*;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		BigInteger total = scan.nextBigInteger();
		BigInteger people = scan.nextBigInteger();
		scan.close();
		
		System.out.println(total.divide(people));
		System.out.println(total.remainder(people));
	}
}

코드 변화

  • int 대신 BigInteger 자료형을 사용해 입력을 받는다.
  • int와 다르게 BigInteger의 나누기, 곱하기는 /, * 대신 메서드 형태로 사용해야한다.

느낀점

역시 파이썬이 좋다. 자바로 문제푸는 사람들은 막 오?! 이건 숫자가 엄청 크군 BigInteger써야지! 이런 생각이 드는걸까