반응형
https://www.acmicpc.net/problem/15815
동아리 알고리즘 스터디의 멘토로서, 스택 연습문제 추천을 위해 스택 문제를 찾던 중
후위연산식 문제와 유사한 문제를 발견하여 풀어보았다.
후위연산식 문제가 중위연산식 문제를 후위연산식으로 고치는 문제라면
이 문제는 후위연산식을 보고 그 값을 계산한 결과를 출력하는 문제이다.
처음에는 소수점 부분에 이상하게 얽메여서 삽질을 좀 했지만,
중간 계산 결과가 항상 정수라는 점을 유의하여 나눗셈계산을 하면 된다.
(c언어 계열의 경우 int형을 쓰면 사실 따로 생각할 것이 없긴 하지만,
파이썬의 경우 자동으로 소수점연산을 하므로 주의해야한다.)
from collections import deque
s = input()
d = deque()
for i in range(len(s)):
try:
d.append(int(s[i]))
except:
if s[i] == '+':
answer = (d.pop() + d.pop())
elif s[i] == '-':
op1 = d.pop()
op2 = d.pop()
answer = (op2-op1)
elif s[i] == '*':
answer = (d.pop() * d.pop())
elif s[i] == '/':
op1 = d.pop()
op2 = d.pop()
answer = op2 // op1
d.append(answer)
print(d.pop())
반응형
'알고리즘 (PS) > BOJ' 카테고리의 다른 글
[백준] 9465 - 스티커 (0) | 2021.07.29 |
---|---|
[백준] 2437 - 저울 (0) | 2021.07.17 |
[백준] 2342 - Dance Dance Revolution (0) | 2021.07.09 |
[백준] 1918 - 후위 표기식 (0) | 2021.07.04 |
[백준] 3709 - 레이저빔은 어디로 (0) | 2021.07.02 |