baeusa1   6년 전

트리를 인풋 받고 정렬 후에


def pre(str,i):
    if (str[i*2] != None) & (str[i*2] != '.'):
        return pre(str,i*2)
    elif (str[i*2+1] != None) & (str[i*2+1] != '.'):
        return pre(str, i*2+1)
    else:
        print(str[i])


이런식으로 짰는데 자꾸 

IndexError: list index out of range

라고 뜨는데 어떻게 해야 할까요 ㅇ


jh05013   6년 전

말그대로 범위를 벗어난 index를 보고 있다는 뜻입니다. i*2나 i*2+1이 len(str) 이상이 될 수 있는지 확인해 보세요.

djm03178   6년 전

코드를 올릴 때는 전체 코드를 올려야 다른 사람들도 컴파일 해보고 직접 돌려보며 문제를 찾습니다. 그리고 예상하지 못한 부분이 원인일 수도 있습니다.

baeusa1   6년 전

자세히 보니깐 인풋 받을 때 index를 벗어나긴 했네요ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.