728x90
난이도 : 브론즈5
풀이일 : 05033
https://www.acmicpc.net/problem/1271
링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐
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써야지! 이런 생각이 드는걸까
'알고리즘 > 🥉 브론즈' 카테고리의 다른 글
백준 3046 R2 자바 풀이 (0) | 2023.05.15 |
---|---|
백준 2338 긴자리 계산 자바 풀이 (0) | 2023.05.14 |
백준 2440 별찍기3 자바 풀이 (0) | 2023.05.12 |
백준 2439 별찍기2 자바 풀이 (0) | 2023.05.11 |
백준 2439 별찍기2 자바스크립트 풀이 (0) | 2023.05.10 |