일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- hive
- 리눅스
- 클라우데라자격증
- sql자격증
- hadoop
- Multi Factor Authentication
- programmers
- 프로그래머스
- 빅데이터실무자격증
- IAM
- SQL
- MFA
- 데이터베이스
- 코딩테스트
- CLF-01
- mysql
- Identity and access management
- EC2
- RDBMS
- CCAAdministrator
- CCA131
- 클라우드자격증
- AWSCloudPractitioner
- AWS자격증
- SQLD
- 파이썬
- 클라우드컴퓨팅
- 쉘스크립트
- 하둡
- 빅데이터
- Today
- Total
Sherry IT Blog
[programmers]이진탐색 본문
문제 설명
리스트 L 과, 그 안에서 찾으려 하는 원소 x 가 인자로 주어질 때, x 와 같은 값을 가지는 원소의 인덱스를 리턴하는 함수 solution() 을 완성하세요. 만약 리스트 L 안에 x 와 같은 값을 가지는 원소가 존재하지 않는 경우에는 -1 을 리턴합니다. 리스트 L 은 자연수 원소들로 이루어져 있으며, 크기 순으로 정렬되어 있다고 가정합니다. 또한, 동일한 원소는 두 번 이상 나타나지 않습니다.
예를 들어,
L = [2, 3, 5, 6, 9, 11, 15]
x = 6
의 인자들이 주어지면, L[3] == 6 이므로 3 을 리턴해야 합니다.
또 다른 예로,
L = [2, 5, 7, 9, 11]
x = 4
로 주어지면, 리스트 L 내에 4 의 원소가 존재하지 않으므로 -1 을 리턴해야 합니다.
이 연습문제에서는 알고리즘의 효율성도 평가합니다. 만약 순차 (선형) 탐색 알고리즘을 구현하는 경우에는 제한 시간 요구사항을 만족하지 못하여 효율성 테스트 케이스들을 통과하지 못할 수도 있습니다.
*내가 제출한 정답
def solution(L, x):
answer = 0
lower = 0
upper=len(L)-1
while lower <= upper:
middle =(lower+upper)//2
if L[middle] == x:
answer=middle
break
elif L[middle] < x:
lower=middle
continue
else:
answer=-1
break
return answer
>> 아직 테스트 케이스 다 통과 못해서 작성중ㅎㅎ
'Python > coding test_Algorithm' 카테고리의 다른 글
python 재귀알고리즘 (Recursive Algorithms) (0) | 2022.01.05 |
---|---|
기본적으로 알아야하는 알고리즘 목록 (0) | 2021.11.03 |
[programmers]리스트에서 원소 찾아내기 (0) | 2021.09.15 |
[programmers]정렬된 리스트에 원소 삽입_삽입정렬 (0) | 2021.09.15 |
[programmers]리스트 원소와 합 (0) | 2021.09.15 |