wordlength 질문입니다.. (py3)

  • furyhunter
    furyhunter

    WORDLENGTH
    이클립스에서 정상적으로 실행되는것을 확인했는데 채점 결과 런타임오류가 뜨네요..

    저번에도 한번 논리적 실수로 인해서 '오답'으로 표시되어야 할 코드가 RTE가 떴던 적이 있었는데 런타임오류가 왜 뜨는건지 궁금합니다..

    제출했던 코드는 아래와 같습니다.

    import sys
    
    alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
                'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    
    n = int(sys.stdin.readline())
    
    for i in range(0, n) : 
        ret = 0
        line = ""
        num = int(sys.stdin.readline())
    
        for j in range(0, num) : 
            line += sys.stdin.readline()
    
        while ret != -1 :   
            ret = line.find('-\n')
    
            if line[ret - 1] in alphabet and line[ret + 2] in alphabet : 
                line = line.replace('-\n', '', 1)
            else : 
                line = line.replace('\n', ' ', 1)
    
        line = line.replace('-', ' ')
    
        token = line.split()
    
        answer = 0
        length = len(token)
    
        for j in range(0, length) : 
            answer += len(token[j].strip())
    
        print("%.3f" % (answer / length))
    


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

    파이썬을 잘은 모르지만..
    "-\n" 이 없을 경우 ret 가 -1 일텐데
    그 ret 를 이용해서 뭔가를 하네요..
    while 이 무한 loop 가 되고
    ret = line.find('-\n')
    이후에 ret 가 -1이면 break 하는 식이 되어야 할 것으로 보입니다.


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