[프로그래머스] 징검다리 (이분탐색/Java)
·
코딩 테스트/Programmers
[프로그래머스] 징검다리 📌 풀이 과정n개의 바위를 제거한 후에 만들 수 있는 "바위 사이의 최소 거리들 중 최댓값"을 구하는 문제이다.쉽게 말해, 바위를 제거해서 바위 사이 간격을 최대한 크게 두면서도그 중에서 제일 작은 가격이 얼마인지 구하면 된다.제거할 바위의 조합을 구해서 완탐으로 풀어도 될 것 같은데... 시간 초과가 난다 ㅇㅋ그렇다면 이 문제를 어떻게 이분탐색으로 풀 수 있을까..!!!먼저 왜 이분 탐색을 사용해야하는지 알아보자.왜 이분 탐색을 쓸까?0부터 도착점까지 모든 거리를 시도해보면 너무 오랜 시간이 걸리게 된다.중간값부터 시도하면서 범위를 절반씩 좁혀가는 게 효율적이게 된다.int low = 0 # 최소 간격의 가능한 최솟값 (바위 사이가 붙어있는 경우)int high = dist..