2025/02/07 2

[백준 1654] 랜선 자르기 - JAVA

https://www.acmicpc.net/problem/1654 이분 탐색 문제다.난이도는 낮은데 정답률이 처참하다.이유는 함정? 디테일?이 있기 때문이다. 1. low = 0 일 때, midVal을 구하는 과정에서 divide by zero 발생(이분 탐색에서는 low까지는 탐색하므로, 1로 놓아도 된다.)2. mid가 int형일 때, mid = (high+low)가 int 범위 초과 시간 초과가 발생한다면 2번 요인으로, 오버플로 발생 및 high, low가 꼬여 의미없는 탐색을 계속 하는 경우이다.애꿏은 가지치기만 계속했다. 안해도 통과하며, K  import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arra..

[백준] PS/Java 2025.02.07

[백준 9024] 두 수의 합 - JAVA

https://www.acmicpc.net/problem/9024 이분 탐색으로 풀었다. (투 포인터가 나을 것 같다.) 예제 및 설명에서, K = 4 에 그 합이 가장 가까운 두 정수는 {-7, 12}, {9, -4}, {5, -2}, {5, 0}, {1, 2} 등의 다섯 종류가 있다.이 때 "가장 가까운 값"은 3, 5 둘 다 될 수 있다. 음수도 고려해야 하므로 탐색 기준을 세우는게 까다로웠다. 1. 포인터를 옮기는 기준 세우기이분 탐색을 적용하려면, 값을 순차적으로 좁힐 수 있는 기준이 필요하다.  diff = 두  원소의 합과 K의 거리 = Math.abs(K - 원소의 합) 로 놓으면, 원소의 합 원소의 값을 올려야한다. 원소의 합 > K일 때원소의 값을 내려야 한다. 2. 이분탐색 적용하기한..

[백준] PS/Java 2025.02.07