완전탐색 - 브루트 포스(Brute Force) - 가능한 모든 경우의 수를 탐색,
효율성 측면에서는 최악,
풀리지 않는 문제는 없음
구현)
def solution(trump): for i in range(len(trump)): if trump[i] == 8: return i return -1
def solution(trump,loc): if trump[loc]==8: return loc else: return solution(trump,loc+1)
이분탐색 - 이진검색이라고도 표현,
오름차순으로 정렬된 리스트에서 특정 값의 위치를 찾는 알고리즘,
중간의 값을 선택하여 찾고자 하는 값과의 크고 작음을 비교하는 방법
def solution(trump): left = 0 right = len(trump)-1 while(left<=right): mid = mid+right//2 if trump[mid]==8: return mid elif trump[mid]<8: left = mid+1 elif trump[mid]>8: right = mid-1 return mid