putisong   2년 전

처음 keyerror 가 나서 딕셔너리에서 문제가 있는것 같아서

anl[equ[i]] 에서 stack.append(anl.get(equ[i])) 로 수정했는데요

이건 typeerror 가 발생하네요

어디가 문제인지 검토 부탁드립니다

choko100   1년 전

안녕하세요, 위의 코드는 3~5번 라인을 보면 문제에서 주어진 알파벳 순서대로 값이 들어오는 것으로 간주되고 있는 듯합니다. 예를 들어, 문제에서 A, B, C 순으로 들어오지 않고 A, C, B 순으로 들어오면 답이 틀리게 되고, 중복된 알파벳이 들어오게 되면 9번 라인에서 NonType이 반환되는 경우가 생겨 11 번 라인에서 Type error 가 발생합니다.

4번 라인을 문제에 나오는 알파벳 순서대로가 아니라 A, B, C, ... 순으로 입력되는 것으로 코드를 변경해주시면 될 것 같습니다.

반례는 아래와 같습니다.

입력)

4
AC+B+C+A+D+
1
2
3
4

정답)

14.00

위의 코드 결과)

Traceback (most recent call last):
  File "main.py", line 12, in <module>
    tmp = eval(stack.pop(-2) + equ[i] + stack.pop(-1))
TypeError: can only concatenate str (not "NoneType") to str

댓글을 작성하려면 로그인해야 합니다.