제가 입출력을 잘못 받고 있는건지요 (RTE 에러, 파이썬)

  • 생아몬드
    생아몬드

    책을 보며 파이썬으로 문제를 풀고 있습니다.
    현재 DP까지 풀었는데 RTE 에러가 너무 자주 나서요.
    제가 입출력을 받는 것에 뭔가 문제가 있나요?
    DP까지는 재귀니까 알고리즘 자체는 제가 특이하게 한 게 없거든요..

      #SNAIL 입출력
      tests = int(input())
      for test in range(tests):
          numPlate = int(input())
          plates = list(map(int, input().split()))
          print(maxWidthOf(plates, 0, numPlate - 1))
    
      #QUANTIZE 입출력
      tests = int(input())
      for test in range(tests):
          numOfData, numberOfEndResult = map(int, input().split())
          rawData = list(map(int, input().split()))
          rawData.sort()
          cache = [[-1 for j in range(numOfData + 1)] for i in range(numOfData + 1)]
          print(minOfTotalError())
    
      #PI 입출력
      tests = int(input())
      answers = []
      for test in range(tests):
          sequence = list(map(int,list(input())))
          length = len(sequence)
          cache = [-1 for i in range(length)]
          answers.append(minLevelTill(length - 1))
    
      for answer in answers:
          print(answer)
    

    4년 전
1개의 댓글이 있습니다.
  • Corea
    Corea

    Python은 기본적으로 작은 크기의 stack을 지원하기 때문에, 재귀 함수를 구현하셨을 때 따로 스택의 깊이를 늘려주셔야 합니다. import sys; sys.setrecursionlimit(10000)을 앞에 붙이면 깊이 1만의 스택을 지원하게 됩니다. 그리고 따로 tail recursion 등의 최적화를 해주지 않기 때문에 시간초과가 날 수 있습니다. PI, SNAIL 문제가 이 경우에 해당하는 것으로 보입니다.

    QUANTIZE 문제의 경우, S=1인 경우를 입력으로 넣어보시면 도움이 되실 것 같습니다.


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