목록binary search (2)
-
# 주소 https://www.acmicpc.net/problem/1365 1365번: 꼬인 전깃줄 첫 줄에 전봇대의 개수 N(1 ≤ N ≤ 100,000)이 주어지고, 이어서 N보다 작거나 같은 자연수가 N개 주어진다. i번째 줄에 입력되는 자연수는 길 왼쪽에 i번째 전봇대와 연결된 길 오른편의 전봇대가 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.*; import java.io.*; public class Main { private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String args[]) t..
배열이 정열되어 있다는 것은 수학적으로 단조증가 수열이라는 것과 동치입니다. 즉, x0 < x1 < ... < xn이 있을 때 어떤 값 xk를 뽑고 그 값이 내가 찾는 값보다 크다면 xk, xk+1, ... , xn-1역시 원하는 값보다 클 것입니다. 그렇다면 굳이 이 값들은 탐색할 필요가 없으므로 과감하게 제거합니다. 반대로 내가 찾는 값보다 작을 경우 x0, x1, .... , xk는 탐색할 필요가 없습니다. public static int solution(int[] arr, int M) { // arr 배열에서 M을 찾자 Arrays.sort(arr); // 정렬 int start = 0; // 시작 int end = arr[arr.length-1]; // 끝 while(start mid) sum+..