코딩문제풀이/프로그래머스
[Python] 징검다리
코딩하는 포메라니안
2021. 9. 4. 21:56
1. 문제
2. 풀이 과정
def solution(distance, rocks, n):
if len(rocks) == n: #전체를 제거해야할 경우
return distance
gap = []
rocks.sort()
rocks.append(distance)
def bsearch(s, e):
while s <= e:
m = (s+e)//2 #최솟값 중 최대가 m이라면
#돌 몇 개를 빼야하는지 count
c = 0
prev = 0
for rock in rocks:
if rock - prev < m:
c += 1
else:
prev = rock
if c > n:
e = m - 1
else:
s = m + 1
return e
return bsearch(1, distance)