Menu
CoddyTech

Binary Search

쉬움이진 탐색python iconjava iconcpp iconc iconjs icon+10

중복 값 없이 오름차순으로 정렬된 정수 목록 nums와 정수 target이 주어집니다. nums에서 target의 인덱스를 0부터 세어 반환하고, 목록에 없으면 -1을 반환하세요. O(log n) 시간 복잡도를 목표로 하세요. 이는 모든 요소를 살펴볼 수 없다는 뜻입니다.

함수

search(nums: integer-array, target: integer) → integer
numsinteger-array
정렬된 고유한 정수 목록
targetinteger
찾을 값
반환값integer
nums에서 target의 인덱스, 없으면 -1

제약 조건

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i], target ≤ 104
  • nums는 엄격한 오름차순으로 정렬되어 있으므로 각 값은 한 번씩만 나타납니다.

예제

입력
nums = [-7, -2, 0, 4, 9, 15, 23]target = 9
출력
4
설명
nums[4]는 9입니다. 검색은 인덱스 3(값 4, 너무 작음)을 살펴본 다음 인덱스 5(값 15, 너무 큼)를 살펴보고, 마지막으로 인덱스 4에서 9를 찾습니다.

lock icon제출 시 숨은 테스트 +15개

challenge icon

후속 질문

nums에 값이 반복될 수 있다면, 여전히 O(log n)으로 target의 첫 번째 인덱스를 어떻게 반환할 수 있을까요?

코드 초기화
def search(nums, target):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

nums = [-7, -2, 0, 4, 9, 15, 23]
target = 9

기대값

4