class Solution:
def firstBadVersion(self, n: int) -> int:
start, end = 1, n
while start<=end :
mid = (start+end)//2
if isBadVersion(mid) == False :
start = mid+1
else :
end = mid-1
return start
버전이 1~n
까지 버전이 있는데 그 중에 bad
버전이 있다면
bad
버전 이후는 True
를, 이전 버전은 False
를 리턴
binary search
에 따라 시작과 끝 인덱스를 갱신하는데,
아직 Bad
버전이 아니라면 시작 버전을 증가시킨다.
만약, Bad
버전이라면 마지막 인덱스를 줄여나가서 문제에서 요구하는 첫 번째 Bad
버전을 찾는다.