본문 바로가기
알고리즘

[파이썬] 백준 1935 후위표기식2 python

by 새우하이 2021. 5. 7.

파이썬으로 풀어본 백준 1935 후위표기식 2

www.acmicpc.net/problem/1935

 

1935번: 후위 표기식2

첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이

www.acmicpc.net

후위표기식 1 문제 와 달리 이번 문제는 구현이 조금 더 쉬웠다.

 

주의해야할 부분은 

알파벳에 값을 직접 대입해서 사용하는 부분인데.

입력 값만 보고 A는 무조건 1이라는 착각을 하면 안된다.

 

대신

파이썬의 내장함수 ord() 를 사용해서 입력 값배열에 접근해서 대입해야한다.

그리고 마지막으로 소숫점 2자리수 까지 출력하는것도 잊으면 안됨

import string
n = int(input())
strn = list(input())
alpha = [0] * n
for i in range(n):
    alpha[i] = (int(input())) 
stack=[]

for s in strn:
    if s.isalpha():
        stack.append(alpha[ord(s) - ord('A')])
    else:
        n2 = stack.pop()
        n1 = stack.pop()
        if s == '+' :
            stack.append(n1+n2)
        elif s == '-':
            stack.append(n1-n2)
        elif s == '*':
            stack.append(n1*n2)
        elif s == '/':
            stack.append(n1/n2)
print(format(stack[0], ".2f"))

댓글