본문 바로가기

두두의 알고리즘/문제

[이분탐색] 릿코드 Easy 278 'First Bad Version' (Python)

728x90

<문제 링크>

https://leetcode.com/problems/first-bad-version/

 

First Bad Version - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


<문제 풀이>

  1. 원소의 값이 크기 때문에 이분 탐색으로 정답을 찾아야 함

<코드>

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

class Solution:
    def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """
        start = 0
        end = n-1
        
        while start<=end:
            mid = (start+end)//2
            if isBadVersion(mid)==True:
                end = mid-1
            else:
                start = mid+1
        
        return start

 

<고쳐야 할 점>

  • 첫 번째 불량을 찾아야 해서 visit []으로 검사를 했지만 시간 초과가 났다. 그냥 이분 탐색이 끝날 때까지 계속 불량을 찾은 후 start를 찾으면 되는 것이었다..