프로그래머스 - 이분탐색 - 징검다리
문제
입력
나의 처음 코드
오늘부터는 아이패드 프로가 생겼기 때문에, 사진으로. 대체!
def solution(distance, rocks, n):
answer = 0
left = 1
right = distance
rocks.sort()
while left <= right:
mid = (left + right) // 2
pre_rock = 0
num_of_rock = 0
m_min = 1000000001
for rock in rocks:
if rock - pre_rock < mid:
num_of_rock += 1
else:
m_min = min(m_min, rock-pre_rock)
pre_rock = rock
if num_of_rock > n:
right = mid - 1
else:
answer = m_min
left = mid + 1
return answer
어떠한 기준을 잡고, 이분탐색을 하느냐가 큰 관건이다. 규칙을 찾고, 기준을 찾으려는 연습과! for문적인 생각을 버려야할 것 같다.