파이썬 k번째 작은수를 찾는 코드에서 몇번의 탐색과정이 있었는지 알고싶습니다

조회수 801회
def selection(data, LEFT,RIGHT, k):
    pivot = partition(data,LEFT,RIGHT)
    if k <pivot :
        return selection(data, LEFT, pivot-1, k)
    elif k == pivot :
        return data[k]
    else :
        return selection(data, pivot+1, RIGHT, k)

def partition(a,pivot,high):
    i = pivot + 1;
    j = high

    while True :
        while i <high and a[i] < a[pivot]:
            i += 1
        while j >pivot and a[j] > a[pivot]:
            j -= 1
            print(input_list)
        if j <= i:

            break
        a[i],a[j] = a[j], a[i]
        i += 1
        j -= 1
    a[pivot],a[j] = a[j], a[pivot]
    return j

input_list = [15,3,11,9,12,2,6,8]
print('입력 data = ',input_list)
k = input('k 값을 입력하시오(0부터 '+str((len(input_list)-1)) + ') :')
position = selection(input_list,0,len(input_list)-1,int(k))
print(sorted(input_list))
print('{:2}번째 작은 수는 {:2}이다. '.format(k,position))

먼저 리스트에서 k번째 작은 수를 찾는 코드인데요 실행하면 k번째로 작은수는 뭐다 이렇게 나오는데 뒤에 몇번째 탐색에서 찾아냈는지 알고 싶은데 어떻게 수정해야 할지 모르겠네요...

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 정렬을 통해서 진행하는거 아닌가요? 정렬액션하는 부분에 있어서 global 변수 이용해서 카운트 하시는게 어떤가요 김호원 2020.9.27 00:23
  • 글로벌 함수를 어떻게 사용해야 하나요? 알 수 없는 사용자 2020.9.27 20:01
  • 함수 바깥에 cnt 라는 변수를 지정하고 함수내에서 global cnt 라고 하면됩니다. python global variable :D 김호원 2020.9.28 09:03
  • global 함수 써봤는데 4입력하면 완정히 정렬하는데 걸리는 횟수가 31번 맞나요? 알 수 없는 사용자 2020.9.28 17:42

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)