PI 문제 RTE(nonzero return code) 관련 질문입니다.(python) snowas 일단 코드는 다음과 같습니다. import os import sys N = [] def classify(beg, end): global N M = N[beg:end] if M.count(M[0]) == len(M): return 1 progressive = True for i in range(len(M)-1): if M[i+1] - M[i] != M[1] - M[0]: progressive = False if progressive and abs(M[1] - 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 INF = 987654321 cache = [None] def memorize(beg): global N, INF, cache if beg == len(N): return 0 if cache[beg] != None: return cache[beg] cache[beg] = INF for L in range(3, 5+1): if beg + L <= len(N): now = classify(beg, beg + L) rest = memorize(beg + L) cache[beg] = min(cache[beg], now + rest) return cache[beg] T = int(input().strip()) for _ in range(T): N = [int(i) for i in input().strip()] cache = [None] * (len(N) + 2) answer = memorize(0) print(answer) 기본적인 알고리즘은 jm북이고, 같은 알고리즘을 c++로 작성시에는 통과했습니다. 파이썬에서는 str 하고 int 타입이 구분되어있어 입력을 정수의 배열로 받고, 난이도 1을 확인할 때 count 함수를 쓴 것 정도를 제외하면 코드 구성은 거의 동일하다고 생각됩니다. 정수형으로 숫자 받을 때 양 옆의 공백도 혹시 몰라서 제거 했고요. c++코드를 파이썬으로 옮기는 과정에서 무엇이 잘못되었을까요? 7년 전
1개의 댓글이 있습니다. seico75 abs(M[1] - M[0] == 1) 가 abs(M[1] - M[0]) == 1 아닌가요? 7년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
snowas
일단 코드는 다음과 같습니다.
기본적인 알고리즘은 jm북이고, 같은 알고리즘을 c++로 작성시에는 통과했습니다. 파이썬에서는 str 하고 int 타입이 구분되어있어 입력을 정수의 배열로 받고, 난이도 1을 확인할 때 count 함수를 쓴 것 정도를 제외하면 코드 구성은 거의 동일하다고 생각됩니다.
정수형으로 숫자 받을 때 양 옆의 공백도 혹시 몰라서 제거 했고요.
c++코드를 파이썬으로 옮기는 과정에서 무엇이 잘못되었을까요?
7년 전