지저분. 어거지로 해결
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