PI 런타임 오류 원인을 모르겠습니다

  • gsr2732
    gsr2732

    PI

    "알고리즘 문제 해결 전략" 책에 있는 코드를 python3로 동일학하게 작성하였는데 런타임 오류가 나네요.
    testCase들 --> 이 testCase들로 테스트 해봤을때 오류 없이 정답이 나오는데 문제제출하면 런타임 오류라고 나오네요. 답변 부탁드려요~!

    import sys
    
    INF = 987654321
    N = ''
    
    
    def classify(a, b):
        M = N[a:b + 1]
        if M == len(M) * M[0]:
            return 1
        progressive = True
        for i in range(len(M) - 1):
            if int(M[i + 1]) - int(M[i]) != int(M[1]) - int(M[0]):
                progressive = False
        if progressive and abs(int(M[1]) - int(M[0])) == 1:
            return 2
        alternating = True
        for i in range(len(M)):
            if M[i] != M[i % 2]:
                alternating = False
        if alternating:
            return 4
        if progressive:
            return 5
        return 10
    
    
    cache = 10002 * [None]
    
    
    def memorize(begin):
        if begin == len(N):
            return 0
        ret = cache[begin]
        if ret != None:
            return ret
        ret = INF
        for L in range(3, 6):
            if begin + L <= len(N):
                ret = min(ret, memorize(begin + L) + classify(begin, begin + L - 1))
        cache[begin] = ret
        return ret
    
    
    def execute(caseCnt, nums=None):
        global N
        global cache
        ret = []
        for i in range(caseCnt):
            if nums == None:
                N = input()
            else:
                N = nums[i]
            min_difficulty = memorize(0)
            cache = 10002 * [None]
            print(min_difficulty)
            ret += [min_difficulty]
        return ret
    
    
    if __name__ == '__main__':
        sys.setrecursionlimit(3000)
        caseCnt = int(input())
        execute(caseCnt)
    

    8년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    sys.setrecursionlimit(3000) 너무 낮은 것 같은데요?


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.