백준 1935 후위 표기식2 (python)

Kim Yongbin·2023년 9월 21일
0

코딩테스트

목록 보기
70/162

Problem

https://www.acmicpc.net/problem/1935

Solution

import sys

def calculate(expression, alpha_value):
    val_list = []

    for exp in expression:
        if exp.isalpha():
            val_list.append(alpha_value[exp])

        else:
            b = val_list.pop()
            a = val_list.pop()

            if exp == "*":
                val_list.append(a * b)
            elif exp == "/":
                val_list.append(a / b)
            elif exp == "+":
                val_list.append(a + b)
            elif exp == "-":
                val_list.append(a - b)

    return val_list[0]

N = int(sys.stdin.readline())
expression = sys.stdin.readline().strip()
alpha_value = {}
for i in range(N):
    alpha_value[chr(i + 65)] = int(sys.stdin.readline())
print(f"{calculate(expression, alpha_value):.2f}")

알파벳이면 스택에 넣고 부호가 나오면 하나씩 뽑아서 계산하면 되는 생각보다 단순한 문제였다.

Reference

https://youjin86.tistory.com/31

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글