[BOJ] 1287번: 할 수 있다

https://www.acmicpc.net/problem/1287



Tree 자료구조, Traversal를 배울 때 흔히 짚고 넘어가는 중위계산법이라 Tree를 이용해서 풀 수 있지만, python을 이용해 깔끔하게 풀어내고 싶었습니다. eval 함수를 적절하게 사용하는 것이 관건이었는데, 문제는 파이썬 상에서는 +3이나 4**4 등이 valid한 equation이기 때문에 조금 껄끄러웠습니다. 이를 해결하기 위해 일단 모든 연산자를 & 연산자로 변경해 강제로 이항연산자가 되도록 했고(그렇지 않다면 exception이 발생할 것임), 또 Python3의 실수 오차를 막기 위해 /를 //으로 변경했습니다. 또 ()를 정상적인 식으로 판단하는 것을 막기 위해 int 함수도 사용했습니다. 굉장히 여러 번 틀렸네요.


https://github.com/blisstoner/BOJ/blob/master/1287.py

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 14502번: 연구소  (0) 2018.03.13
[BOJ] 14501번: 퇴사  (0) 2018.03.13
[BOJ] 15573번: 채굴  (0) 2018.03.13
[BOJ] 1081번: 합  (0) 2018.03.12
[BOJ] 1124번: 언더프라임  (0) 2018.03.12
[BOJ] 1034번: 램프  (0) 2018.03.11
  Comments