강의로 돌아가기
Jinho

런타임 에러

안녕하세요. 코드를

def solution(N, stages):
clear = {}
do = {}

for i in range(N):
    clear[i] = 0
    do[i] = 0

for item in stages:
    for i in range(N):
        if i > item - 1:
            break
        if i != item -1:
            clear[i] += 1
        do[i] += 1

stage_fault = {}

for i in range(N):
    stage_fault[i] = (do[i] - clear[i]) / do[i]

res = sorted(stage_fault.items(), key=lambda x: x[1], reverse=True)
answer = []

for i in range(len(res)):
    answer.append(res[i][0] + 1)

return answer

이렇게 짜봤는데, 예제는 되지만 채점시에 반정도는 런타임 에러가 발생합니다.
에러의 이유를 모르겠어서 제 컴퓨터에 파이썬 3.5.2 버전을 깔고,

for i in range(200):
a = []
n1 = random.randrange(1, 501)
n2 = random.randrange(1, 200001)
for n in range(n2):
a.append(random.randrange(n1) + 1)

print(solution(n1, a))

이렇게 시험으로 돌려봤는데, 런타임 에러가 나오지 않아서 에러의 이유를 모르겠습니다.
런타임 에러의 상세 메시지를 확인할 수는 없나요?

1 개의 답변
Jinho

자답.
비효율적으로 짜서 그런거네요. NxN 번 실행될 수 밖에 없는 2중 for문을 없애도록 한 후에 해보니까 되네요....
코딩 테스트 때 왜 안 되는지 이러면서 넘겼는데....

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.