LeetCode/NeetCode

BST: 278. First Bad Version ★

hyunkookim 2025. 1. 21. 09:20

278. First Bad Version

 

# The isBadVersion API is already defined for you.
# def isBadVersion(version: int) -> bool:

class Solution:
    def firstBadVersion(self, n: int) -> int:
        # 첫번째 bad 버전 찾기
        # good, good, good, good, bad, bad, bad, .. 계속 bad
        l, r = 1, n

        while l<=r:
            mid = (l+r)//2

            if isBadVersion(mid) == False: # good 버전
                l = mid +1
            elif isBadVersion(mid) == True: # bad 버전
                r = mid-1
            
        # 계속 진행되면. r < l 되면 while 문 나옴
        # r 이. good 의 마지막이고
        # l 이 bad 시작점이 됨
        return l

'LeetCode > NeetCode' 카테고리의 다른 글

Graphs: 1091. Shortest Path in Binary Matrix ★★★  (0) 2025.01.23
Graphs: 695. Max Area of Island ★  (0) 2025.01.23
BST: 704. Binary Search  (0) 2025.01.21
Hashmap: 217. Contains Duplicate  (0) 2025.01.20
HashMap 구현  (0) 2025.01.20