LeetCode - Search Insert Position(35)

marafo·2021년 6월 6일

지저분. 어거지로 해결
Runtime: 48 ms, Memory: 15.2 MB

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        
        existance = nums.count(target)
        medium = len(nums) // 2 # 중간지점 이분탐색 기준점
        
        if existance:
            return nums.index(target)
        
        if len(nums) == 2 :
            for i in range(len(nums) - 1, -1, -1):
                if target >= nums[i]:
                    return i + 1
        elif len(nums) == 1:
            if nums[0] > target:
                return 0
            else:
                return 1
             
        if target < nums[medium]: # 중간 왼쪽 범위
            for i in range(medium - 1, -1, -1):
                if target > nums[i] and i != 0:
                    return i + 1
                
                if i == 0 and target < nums[i]:
                    return 0
                elif i == 0 and target > nums[i]:
                    return 1
        else:
            for i in range(len(nums) - 1, medium - 1, -1): # 중간 오른쪽 범위 거꾸로 진행
                if target > nums[i]:
                    return i + 1
                
                if i == medium and target < nums[i]:
                    return medium
                elif i == medium and target > nums[i]:
                    return medium + 1
            
        
profile
프론트 개발자 준비

0개의 댓글