Problem Solving with Algorithms

반응형

2021.11.27 - [LeetCode 리트코드/Study Plan] - 리트코드 스터디플랜 3종류

 

리트코드 스터디플랜 3종류

리트코드에 다음과 같이 3종류의 스터디플랜이 새로 생겨서 하나하나 한번 도전 해보고자 한다. 첫 번째는 14일간 진행되는 크랙 알고리즘플랜이고, 그 다음 트랙은 2주간 진행되는 크랙 데이터

inner-game.tistory.com

2021.11.27 - [LeetCode 리트코드/Study Plan] - 리트코드 스터디플랜 - 알고리즘

 

리트코드 스터디플랜 - 알고리즘

리트코드 스터디플랜 - 알고리즘 편을 들어다 보자. 이 스터디 플랜은 총 14일동안 진행되는것으로 구성되어 있고, 매일매일 2~3문제를 풀어야 해서 만만치 않은것 같다. 개인적인 느낌으로는 풀

inner-game.tistory.com

 

 

 

[1-1] 704. Binary Search

은 바이너리 서치이다. 예전에 내 코드를 보면 l, r 혹은 low high 그리고 피봇은 mid로 해놨던데,

left, right로 풀 변수명을 적어주고, mid라는 중의적인 느낌의 변수명 대신 알고리즘에서 의도한대로 pivot으로 적는것이 훨씬 깔끔한 듯 하다. left, right의 비교는 같거나 작을때까지로 설정해주고, 피봇값이 타겟보다 크면 right를 피봇의 바로 왼쪽으로 옮겨주고, 나머지 경우에는 pivot 의 오른쪽으로 올겨준다.

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1
        
        while left <= right:
            pivot = left + (right - left) // 2
            if nums[pivot] == target:
                return pivot
            if target < nums[pivot]:
                right = pivot - 1
            else:
                left = pivot + 1
    
        return -1

 

 

[1-2] 278. First Bad Version

역시나 같은 binary search 문제.

 

반응형
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band