알고리즘
백준 파이썬 1935번 후위표기식2
chaewonni
2023. 5. 18. 00:52

n=int(input())
sik=input()
list=[]
stack=[]
for i in range(n):
list.append(int(input()))
for i in sik:
if 'A' <= i <= 'Z': #피연산자 만나면
stack.append(list[ord(i)-ord('A')])
else: #연산자 만나면
a=stack.pop()
b=stack.pop()
if i == '+':
stack.append(b+a)
elif i == '-':
stack.append(b-a)
elif i == '*':
stack.append(b*a)
elif i == '/':
stack.append(b/a)
print('%.2f' %stack[0])
stack을 이용해서 풀어주었다. 피연산자를 만나면 알파벳을 아스키코드 숫자로 바꿔주는 ord함수를 이용해서 스택에 넣어주고, 연산자를 만나면 스택에서 pop으로 꺼내주는 식으로 코드를 작성하였다. 마지막에는 소수점 둘째자리까지 출력될 수 있도록 하였다.