백준 python 기록
백준 파이썬 후위 표기식2
우히힝
2022. 4. 11. 22:37
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이
www.acmicpc.net
후위 표기식이 뭔지몰라서 조금 해맸는데 스택으로 간단히 해결하였습니다.
A,B,C는 아스키코드로 값을 변환해서 사용하면 되는거고
A B C * + 가 들어왔을 경우 우선 A,B,C를 전부 스텍에 저장
사칙연산이 들어왔다면 스택에서 값을 두개 빼내서 계산 -> 반복 후 출력을 하면 끝나는 문제입니다.
n = int(input())
s = input()
li = [0] * n
for i in range(n):
li[i] = int(input())
stack = []
for i in s:
if 'A' <= i <= 'Z':
stack.append(li[ord(i) - ord('A')])
else:
p2 = stack.pop()
p1 = stack.pop()
if i == '+':
stack.append(p1+p2)
elif i == '-':
stack.append(p1-p2)
elif i == '*':
stack.append(p1*p2)
elif i == '/':
stack.append(p1/p2)
print('%.2f' %stack[0])