pizzaroot   3년 전

정상적인 풀이방법이 아니라는 것은 알고 있지만 그래도 반례가 궁금합니다.

shg9411   3년 전

][

seico75   3년 전

독창적인 방법이네요.

반례는..

][.
.

seico75   3년 전

마지막에 [] 으로 둘러야하나요? 저도 궁금..

pizzaroot   3년 전

일단 코드를 수정해봤습니다만

.replace('[]', '[1]')

는 불필요해서 제거하였고

exec()를 eval()로 바꿨습니다 (혹시 몰라서 exec()로도 해봤습니다.)

위의 반례를 고려하여 if문도 추가하였습니다.

.replace('()', '(1,)') 부분은 tuple이라는 것을 가만했지만

(()) 를 고려하더라도

((1,)) 로 바뀌어서 문제가 없다고 생각합니다.

그런데 아직 틀렸습니다. 무엇이 문제일까요?

pizzaroot   3년 전

[]][ 가 있군요

pizzaroot   3년 전

[]로 안둘러도 되는거 같아서 제거해도 안됩니다.

shg9411   3년 전

()][

끼워맞추기식 풀이는 아무 도움이 되지 않을 것 같습니다.

pizzaroot   3년 전

위의 반례도 이미 고려하여서 양끝에 대괄호를 제거하였습니다.

eval()을 이용한 풀이가 가능한지 궁금한것 뿐입니다.

pizzaroot   3년 전

exec()로 바꿔서 풀었는데

똑같이 python expression인데 exec랑 eval이 다르게 exception을 내놓는 이유가 뭔가요?

eval()은 결과를 return하는 건 알지만 그게 exception을 내놓는 구조랑 상관이 있나요?

shg9411   3년 전

eval과 exec는 받을 수 있는 인자가 다릅니다.

seico75   3년 전

eval : ... evaluated as a Python expression (technically speaking, a condition list) ...

exec : ... parsed as a suite of Python statements ....

https://docs.python.org/3/libr...

eval 은 expression 을 계산하고 코드를 풀어서 생성하는 것 같습니다.

exec 는 statements 의 suite 를 받아서 동적 수행하는 것 같네요.

그래서.. 반례는..

abcde.
.

eval 은 exception 이 발생하고 exec는 안 발생합니다.

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