[백준] 1935: 후위 표기식 2 (Python)

JiKwang Jeong·2021년 10월 16일
0
post-custom-banner

문제📖

풀이🙏

  • 후위 표기식 특성상 alphabet이 아닌 연산자가 나올 경우 stack에서 숫자를 꺼내 연산자에 따라 연산을 진행하고 그 결과를 다시 stack에 push한다.
  • alphabet이 나올 경우 stack에 그 alphabet을 push한다.
  • input()이후 A,B,C값을 입력한 숫자로 변환해주기 위해서 각 값을 num리스트에 저장하고 input에서 알파벳이 나오면 알파벳을 아스키코드값으로 변환하고 시작 알파벳인 A의 아스키코드 값을 빼서 num 리스트를 이용하여 값을 찾아내어 stack에 push한다.

코드💻

import sys
input = sys.stdin.readline
stack = []
n = int(input())
s = list(input().rstrip())
num = [0] * n

for i in range(n):
    num[i] = int(input())

for i in s:
    if i.isalpha():
        stack.append(num[ord(i)-ord('A')])
    else:
        x = stack.pop()
        y = stack.pop()
        if i == "+":
            stack.append(y+x)
        elif i == "*":
            stack.append(y*x)
        elif i == "-":
            stack.append(y-x)
        elif i == "/":
            stack.append(y/x)

print(format(stack[0],".2f"))
        
profile
기억보다 기록, 난리보다 정리
post-custom-banner

0개의 댓글