[프로그래머스] 징검다리 건너기
1. 전체 코드
def solution(stones, k):
result = 0
left, right = 1, max(stones)
while left <= right:
mid = left + (right - left) // 2
blank = 0
flag = True
for stone in stones:
if stone < mid:
blank += 1
if blank == k:
flag = False
else:
blank = 0
if flag:
result = mid
left = mid + 1
else:
right = mid - 1
return result
2. 후기
def solution(stones, k):
result = 0
left, right = 1, max(stones)
while left <= right:
mid = left + (right - left) // 2
blank = 0
flag = True
for stone in stones:
if stone < mid:
blank += 1
if blank == k:
flag = False
else:
blank = 0
if flag:
result = mid
left = mid + 1
else:
right = mid - 1
return result
문제 풀이에 이진 탐색을 떠올리는 것이 중요하다. 주어진 조건의 범위가 무지막지하게 클 경우 바로 의심을 해보자.
입국 심사 문제 또한 이 문제와 비슷한 조건과 풀이 형태를 가진다.
Author And Source
이 문제에 관하여([프로그래머스] 징검다리 건너기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@legowww/프로그래머스-징검다리-건너기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)