LeetCode #278

Kiyong Lee·2022년 1월 14일
0

leetcode

목록 보기
19/20

278. first bad version


1. 코드

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

2. 풀이

버전이 1~n까지 버전이 있는데 그 중에 bad 버전이 있다면
bad 버전 이후는 True를, 이전 버전은 False를 리턴

binary search에 따라 시작과 끝 인덱스를 갱신하는데,
아직 Bad버전이 아니라면 시작 버전을 증가시킨다.

만약, Bad 버전이라면 마지막 인덱스를 줄여나가서 문제에서 요구하는 첫 번째 Bad 버전을 찾는다.

profile
ISTJ인 K-개발자

0개의 댓글