{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉이진 탐색〉정렬 배열에서 target의 첫 위치← 이전다음 →
#068 · 이진 탐색쉬움이진 탐색

정렬 배열에서 target의 첫 위치

문제

오름차순으로 정렬된 정수 배열 arr 과 정수 target 이 주어집니다. arr 에서 target 이 "처음으로" 등장하는 인덱스를 반환하세요. (중복 값이 있을 수 있으므로 가장 왼쪽에 있는 인덱스를 반환합니다.) target 이 배열에 존재하지 않으면 -1 을 반환합니다.

예시

arr=[1,2,2,2,3,4], target=2 → 1   (가장 왼쪽 2의 인덱스)
arr=[1,3,5,7],     target=5 → 2
arr=[1,2,3],       target=4 → -1
arr=[2,2,2,2],     target=2 → 0

제약 조건

  • 1 ≤ arr.length ≤ 1,000,000
  • 배열은 오름차순 정렬, 중복 가능
  • -1,000,000,000 ≤ arr[i], target ≤ 1,000,000,000

시간 복잡도 목표: O(log N)

테스트 케이스

예시 1: 중복 → 가장 왼쪽 인덱스
입력: arr = [1,2,2,2,3,4], target = 2
출력: 1
예시 2: 중복 없음
입력: arr = [1,3,5,7], target = 5
출력: 2
예시 3: 없음 → -1
입력: arr = [1,2,3], target = 4
출력: -1
예시 4: 전부 같음 → 0
입력: arr = [2,2,2,2], target = 2
출력: 0
예시 5: 원소 1개 (존재)
입력: arr = [10], target = 10
출력: 0
예시 6: 원소 1개 (없음)
입력: arr = [10], target = 5
출력: -1
예시 7: 음수 영역 중복
입력: arr = [-5,-3,-3,0,1,4], target = -3
출력: 1
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.