배열과 탐색·연습 문제

선형 탐색

문제 설명PROBLEM

선형 탐색

왜 이 문제를 푸나요?

가장 기본적인 탐색을 직접 구현해야 이후 이진 탐색이나 해시 탐색이 왜 더 빠른지 비교할 수 있습니다. 조기 반환과 '값이 없음' 처리는 거의 모든 탐색 문제의 출발점입니다.

익혀야 할 개념

  • 순차 탐색
  • 인덱스와 값 동시 순회
  • 조기 반환
  • O(n) 시간복잡도

과제

리스트 numbers를 앞에서부터 확인해 target이 처음 등장하는 인덱스를 반환하세요. 값이 없으면 -1을 반환합니다.

함수

linear_search(numbers, target)

목표 복잡도

시간 O(n), 추가 공간 O(1)

테스트 케이스

실행하면 아래 순서대로 채점합니다. print() 출력도 이 순서대로 쌓입니다.

#이름numberstarget기대값
1중간에서 발견[4, 7, 1, 9]12
2중복이면 첫 위치[3, 2, 3, 3]30
3값이 없음[1, 2, 3]8-1
4빈 리스트[]5-1
5마지막 위치[5, 8, 13]132

Python 표준 라이브러리는 사용할 수 있습니다. 함수 이름과 매개변수는 제시된 형태를 유지하세요.

개념 노트와 실수 포인트

배열과 탐색

  • 배열(파이썬 list)은 인덱스로 읽을 때 O(1), 처음부터 값을 찾을 때 O(n) 입니다.
  • 빈 배열, 중복 값, 찾는 값이 없는 경우를 항상 확인하세요.