https://www.acmicpc.net/problem/1935
후위표기식을 계산하면 되는 문제다.
후위표기식 계산방법은 연산자가 나왔을 때 연산자 앞에 있는 숫자 두 개를 계산하면 된다.
이 문제에서는 알파벳과 숫자가 따로 주어지는데, 알파벳에 숫자를 대입해주는 것만 신경 쓰면 쉽게 풀 수 있는 문제였던 것 같다.
n = int(input())
s = input()
arr_dict = {}
for i in range(n) :
arr_dict[chr(65+i)] = int(input())
stack = []
for c in s :
if c == '+' or c == '-' or c == '*' or c == '/' :
n1 = stack.pop()
n2 = stack.pop()
if c == '+' :
stack.append(n2 + n1)
elif c == '-' :
stack.append(n2 - n1)
elif c == '*' :
stack.append(n2 * n1)
elif c == '/' :
stack.append(n2 / n1)
else:
stack.append(arr_dict[c])
print('{:.2f}'.format(stack[0]))
[백준/파이썬]5430 AC (0) | 2023.07.26 |
---|---|
[파이썬/알고리즘] 응급실 (0) | 2023.07.25 |
[백준/파이썬]1918 후위 표기식 (0) | 2023.07.19 |
[백준/파이썬]10799 쇠막대기 (0) | 2023.07.19 |
[알고리즘] 가장 큰 수 (0) | 2023.07.17 |