프로그래머스 - 징검다리


프로그래머스 - 징검다리

12345678910111213141516171819202122232425262728def solution(distance, rocks, n): answer = 0 st = 0 ed = distance rocks.sort() while st <= ed: mid = (st+ed)//2 cnt = 0 r = 0 for rock in rocks: if rock - r < mid: cnt += 1 else: r = rock if cnt > n: break if cnt > n: ed = mid - 1 else: answer = mid st = mid + 1 return answer print(solution(25, [2, 14, 11, 21, 17], 2))cs mid를 정하고 해당 기준을 사용했을 때, 바위가 n개 이상 제거될 수 없기에 n개 이상이 되면 end를 줄이고 n개 이하의 바위를 제거하면 start를 키우며 최대의 mid를 찾는 과정...



원문링크 : 프로그래머스 - 징검다리