코딩테스트/백준
백준(BAEKJOON) 1935 후위 표기식2 - Python
Moonsu99
2023. 11. 24. 21:18
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이
www.acmicpc.net
풀이
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
que = deque()
list = []
postfix = input().rstrip() # rstrip써서 문자 없으면 오른쪽 공백제거, 있으면 문자열 제거
for _ in range(n): # 알파벳에 대응하는 값을 입력받아 리스트에 저장
list.append(int(input()))
for str in postfix: # 입력받은 후위 표기법 수식을 한 문자씩 돌기
if str.isalpha(): # 문자가 알파벳인 경우
que.append(list[ord(str) - 65]) # 알파벳에 대응하는 값을 큐에 추가
else: # 문자가 연산자인 경우
first = que.pop()
second = que.pop()
if str == '+':
que.append(second + first)
elif str == '-':
que.append(second - first)
elif str == '*':
que.append(second * first)
elif str == '/':
que.append(second / first)
#소수점 둘째까지 출력
print("{:.2f}".format(que[0]))