본문 바로가기

임의 정밀도 / 큰 수 연산8

[백준] 1252번 - 이진수 덧셈 [Java] https://www.acmicpc.net/problem/1252 1.  아이디어 이진수의 덧셈을 하는 문제로 이진수의 길이가 최대 80이어서 int나 long 같은 기본 타입으로는 처리하기 어렵다.배열을 활용해 직접 이진수의 덧셈을 구하는 방법과 큰 수 연산에 활용할 수 있는 BigInteger 클래스의 메서드를 활용하는 방법 2가지로 해결했다.2. 문제풀이 배열을 활용할 경우 덧셈으로 자릿수가 넘어가는 것을 고려해서 두 수 중 길이가 더 긴 수의 길이보다 1 크게 잡았다. 일단 덧셈을 수행한 후 뒤에서부터 순회하며 자릿수 이동을 구현하고 앞의 0을 제외하고 출력하도록 했고 출력 결과가 0인 경우에 대한 예외처리를 했다.3. 코드 import java.io.*;import java.util.*;publ.. 2025. 3. 14.
[백준] 13277번 - 큰 수 곱셈 [Java] https://www.acmicpc.net/problem/13277 1.  아이디어 기본 타입의 범위를 넘어가는 큰 수에 대한 곱셈을 하는 문제로 BigInteger 클래스를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 BigInteger 클래스의 multiply 메서드를 활용해서 곱셈을 구했다.3. 코드 import java.io.*;import java.math.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 2025. 2. 17.
[백준] 15792번 - A/B - 2 [Java] https://www.acmicpc.net/problem/15792 1.  아이디어 소수점에 대한 정밀도가 매우 높은 문제로 BigDecimal 클래스를 활용하면 해결할 수 있다.2. 문제풀이 BigDecimal 클래스의 divide 메서드로 나눗셈을 수행할 수 있으며 정밀도에 맞춰 scale에 10000, 반올림을 하는 방식으로 적용했다.3. 코드 import java.io.*;import java.math.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRe.. 2025. 2. 2.
[백준] 10826번 - 피보나치 수 4 [Java] https://www.acmicpc.net/problem/10826 1.  아이디어 이전 피보나치 수 문제에서 N이 최대 10000인 문제로 long 타입의 범위도 넘어간다. 이를 처리하기 위해 큰 수의 연산을 간단하게 할 수 있는 BigInteger 클래스를 활용해서 구현했다.2. 문제풀이 BigInteger 타입 배열을 이용한 다이나믹 프로그래밍으로 해결했고 add 메서드로 덧셈을 수행했다.3. 코드 import java.io.*;import java.math.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new .. 2025. 2. 1.
[백준] 26711번 - A+B [Java] https://www.acmicpc.net/problem/26711 1.  아이디어 BigInteger 클래스로 큰 수의 연산을 간단하게 처리할 수 있다.2. 문제풀이 최대 5000자리 수에대한 덧셈 연산은 기본 타입으로 처리하기 어려워서 BigInteger 클래스와 add 메서드를 활용했다.3. 코드 import java.io.*;import java.math.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BigInteger a = new Bi.. 2025. 1. 7.
[백준] 10757번 - 큰 수 A+B [Java] https://www.acmicpc.net/problem/10757 1.  아이디어 정수의 범위가 long 타입의 범위도 넘어서므로 BigInteger 클래스를 활용했다.2. 문제풀이 BigInteger의 add 메서드를 활용해서 덧셈을 구현했다.3. 코드 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 .. 2024. 12. 8.
[백준] 15740번 - A+B - 9 [Java] https://www.acmicpc.net/problem/15740 1.  아이디어 정수의 범위가 long 타입의 범위도 넘어서므로 BigInteger 클래스를 활용했다.2. 문제풀이 BigInteger의 add 메서드를 활용해서 덧셈을 구현했다.3. 코드 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 .. 2024. 12. 8.
[백준] 5988번 - 홀수일까 짝수일까 [Java] https://www.acmicpc.net/problem/5988 1.  아이디어 홀수인지 짝수인지만 판단하면 되는 간단한 문제지만 기본 타입을 넘어서는 범위로 입력이 주어지는 점에 주의해야 한다.2. 문제풀이 홀짝 여부는 1의 자리 수만 판단하면 알 수 있으므로 1의 자리 수만 입력에서 추출해서 계산하면 된다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buffe.. 2024. 12. 3.