Written by
최태열
on
on
[Python][프로그래머스][Level3] 징검다리 건너기
[Python][프로그래머스][Level3] 징검다리 건너기
코드
def solution(stones, k):
start,end=0,max(stones)
while start<=end:
middle=(start+end)//2
cnt=cnt2=0
for stone in stones:
if stone-middle<=0:
cnt2+=1
else:
cnt=max(cnt,cnt2)
cnt2=0
else:
cnt=max(cnt,cnt2)
if cnt>=k:
end=middle-1
else:
start=middle+1
return start
이분탐색으로 풀었다.
연속으로 middle 보다 작은 stone 에 대해서 count 해주고
middle 보다 큰 stone이 나온다면 count를 중간 저장해준다.
그렇게 알맞은 middle 값이 나올 때까지 반복한다.
Discussion and feedback