PlayXP

새로운 사이트를 준비하는 동안
여러분의 이야기가 이어질 작은 공간을 마련했습니다.

PlayXP 서비스를 준비하며 함께 작업하고 있는 운영진 일러스트

RecursionError: maximum recursion depth exceeded in comparison 오류 재귀함수 터진 건가요?

조회 수 794

def find_median_five(L):

L.sort()

return L[len(L)//2]

 

def MoM(L, k): # L의 값 중에서 k번째로 작은 수 리턴

if len(L) == 1: # no more recursion

return L[0]

i = 0

A, B, M, medians = [], [], [], []

while i < len(L) and i+4 >= len(L):

medians.append(find_median_five(L[i: i+5]))

i+=5

if i < len(L) and i+4 >= len(L):

median.append(find_median_five(L))

mom = MoM(medians, len(medians)//2)

for v in L:

if v < mom: A.append(v)

elif v > mom: B.append(v)

else: M.append(v)

 

if len(A)>=k: return MoM(A,k)

elif len(A)+len(M)<k: return MoM(B,k-len(A)-len(M))

else: return mom

 

n, k = (int(x)for x in input().split())# n과 k를 입력의 첫 줄에서 읽어들인다

L = [int(x) for x in input().split()]# n개의 정수를 읽어들인다. (split 이용 + int로 변환)

print(MoM(L, k))​ 

이 코드에서 지금 

> 10 3

-62 1 82 55 -48 63 47 -63 93 92 

Makefile:6: recipe for target 'py3_run' failed

make: *** [py3_run] Error 1

Traceback (most recent call last):

  File "Main.out", line 27, in <module>

    print(MoM(L, k))

  File "Main.out", line 15, in MoM

    mom = MoM(medians, len(medians)//2)

  File "Main.out", line 15, in MoM

    mom = MoM(medians, len(medians)//2)

  File "Main.out", line 15, in MoM

    mom = MoM(medians, len(medians)//2)

  [Previous line repeated 995 more times]

  File "Main.out", line 6, in MoM

    if len(L) == 1: # no more recursion

RecursionError: maximum recursion depth exceeded in comparison

오류가 이렇게 뜨는데 재귀함수쪽을 살펴 봐야겠죠?

목록으로

댓글

댓글을 불러오는 중...