278. First Bad Version

치즈말랑이·2021년 10월 5일
0
post-thumbnail

# The isBadVersion API is already defined for you.
# @param version, an integer
# @return an integer
# def isBadVersion(version):

class Solution:
    def firstBadVersion(self, n):
        i = 0
        while i <= n :
            if isBadVersion(i) == False:
                i = i+1
            else:
                return i

런코드에서는 잘나오는데 submit 하니까 시간초과..
솔루션 보니까 Approach #1 (Linear Scan) [Time Limit Exceeded] 라고 나온다 ㅋㅋ

class Solution:
    def firstBadVersion(self, n):
        i = 1
        while i <= n :
            m = int((i+n)/2)
            if isBadVersion(m) == False:
                i = m+1
            else:
                n = m-1
        return 


어제 풀었던 binary search와 같은 원리인데 이거는 한단계 더 업그레이드 된 버전이다.
어제 문제는 단순히 중앙값과 매칭해서 크면 left값에 mid값을 넣고, 작으면 right값에 mid값을 넣어 탐색범위를 반씩 줄이는 방법인데, 이 문제는 불리안에 mid값을 넣어 false가 나오면 left값에 mid값을 넣고, true가 나오면 right값에 mid값을 넣는 방식이다. true이면 왼쪽에서 다시찾아야하기때문. 결국 이 문제도 솔루션을 보기는 했지만 어제 풀었던 binary 방법을 상기해서 Approach #1를 달성했기 때문에 다음 문제는 어떤게 나올까 기대가 된다.

profile
공부일기

0개의 댓글

관련 채용 정보