코드테스트

2.완전탐색/ 이분탐색

Bomme 2021. 5. 30. 18:24

완전탐색(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)

 

 

이분탐색: 정렬된 배열에서 특정한 값을 찾아내는 것. 임의의 값 선택.  찾고자하는 값 x 비교. 

             x기준으로 작으면 왼쪽. 크면 오른쪽으로 탐색.

 

 def solution(trump):

    left=0

    right= len(trump)-1

    while(left<=right):

        mid=(left+right)//2

        if trump[mid]==8:

            return mid

        elif trump[mid] <8:

            left=mid+1

        elif trump[mid]>8:

            right=mid-1

    return mid

 

 

기타:: 깊이우선탐색, 너비우선탐색, 문자열탐색, kmp, bm ,,,