728x90
반응형
백준 코딩 알고리즘 문제 1935번
백준 코딩 알고리즘 문제 1935번 풀이 - 사용 언어: Python
# Practive 002 : Postfix
# https://boj.kr/1935
N = int(input())
input_str = input()
operand_stk = []
# save operand data to each chr
operand_data = dict()
for i in range(N):
operand_data[chr(65+i)] = int(input())
# calculate input
for c in input_str:
if 65 <= ord(c) <= 90: # save operand in stack
operand_stk.append(c)
else: # when cursor meet operator
result = 0
num_type_list = [int, float, complex]
if type(operand_stk[-1]) in num_type_list:
x2 = operand_stk.pop()
else:
x2 = operand_data[operand_stk.pop()]
if type(operand_stk[-1]) in num_type_list:
x1 = operand_stk.pop()
else:
x1 = operand_data[operand_stk.pop()]
if c == '+':
result = x1 + x2
elif c == '-':
result = x1 - x2
elif c == '*':
result = x1 * x2
elif c == '/':
result = x1 / x2
operand_stk.append(result)
print("{:.2f}".format(operand_stk.pop()))
728x90
반응형
'Dev > BAEKJOON 백준' 카테고리의 다른 글
[백준/BOJ] 백준 코딩 알고리즘 2447번 별 찍기 - 10/Python (0) | 2023.07.11 |
---|---|
[백준/BOJ] 백준 코딩 알고리즘 1026번/Python (0) | 2023.01.19 |
[백준/BOJ] 백준 코딩 알고리즘 11049번/C++ (0) | 2019.07.26 |
[백준/BOJ] 백준 코딩 알고리즘 11051번/C++ (0) | 2019.07.26 |
[백준/BOJ] 백준 코딩 알고리즘 11057번/C++ (0) | 2019.07.26 |