728x90
반응형
백준 BAEKJOON 15815번 천재 수학자 성필 [PYTHON/파이썬]
[목차여기]
<문제 출처> (SILVER Ⅲ)
https://www.acmicpc.net/problem/15815
<풀이>
(a+(b*c))의 식이 abc*+ 식으로 변형되기 때문에
정수는 뒤에서부터 연산자는 앞에서부터 차례대로 계산하면 된다.
정수를 먼저 stack에 담아두고
연산자가 나왔을 시에는 pop을 2번 하여 나온 값들을
연산자에 맞춰 계산한 후 다시 stack에 담아주는 작업을 했다.
최종적으로 계산이 끝나면 stack에는 하나의 정수가 담기게 되니
stack의 0번째 인덱스를 출력하여 마무리했다.
<코드>
expression = input()
stack = []
for i in expression:
if i == "+":
stack.append(stack.pop() + stack.pop())
elif i == "-":
a, b = stack.pop(), stack.pop()
stack.append(b - a)
elif i == "*":
stack.append(stack.pop() * stack.pop())
elif i == "/":
a, b = stack.pop(), stack.pop()
stack.append(b / a)
else:
stack.append(int(i))
print(stack[0])
728x90
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 33950번 어게인 포닉스 [PYTHON/파이썬] (0) | 2025.07.08 |
---|---|
백준 BAEKJOON 33868번 스티커 나눠주기 [PYTHON/파이썬] (0) | 2025.07.06 |
백준 BAEKJOON 33990번 3대 512 [PYTHON/파이썬] (1) | 2025.06.02 |
백준 BAEKJOON 33963번 돈복사 [PYTHON/파이썬] (0) | 2025.06.01 |
백준 BAEKJOON 10773번 제로 [PYTHON/파이썬] (0) | 2025.05.29 |