상세 컨텐츠

본문 제목

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

알고리즘 문제풀이

by 한백인데용 2023. 7. 22. 20:41

본문

728x90
반응형

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

 

1935번: 후위 표기식2

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

www.acmicpc.net

 

문제

 

후위표기식을 계산하면 되는 문제다.

 

후위표기식 계산방법은 연산자가 나왔을 때 연산자 앞에 있는 숫자 두 개를 계산하면 된다.

 

이 문제에서는 알파벳과 숫자가 따로 주어지는데, 알파벳에 숫자를 대입해주는 것만 신경 쓰면 쉽게 풀 수 있는 문제였던 것 같다.

 

정답

n = int(input())

s = input()
arr_dict = {}
for i in range(n) :
    arr_dict[chr(65+i)] = int(input())

stack = []

for c in s :
    if c == '+' or c == '-' or c == '*' or c == '/' :
        n1 = stack.pop()
        n2 = stack.pop()
        if c == '+' :
            stack.append(n2 + n1)
        elif c == '-' :
            stack.append(n2 - n1)
        elif c == '*' :
            stack.append(n2 * n1)
        elif c == '/' :
            stack.append(n2 / n1)
    else:
        stack.append(arr_dict[c])
        
print('{:.2f}'.format(stack[0]))
728x90
반응형

'알고리즘 문제풀이' 카테고리의 다른 글

[백준/파이썬]5430 AC  (0) 2023.07.26
[파이썬/알고리즘] 응급실  (0) 2023.07.25
[백준/파이썬]1918 후위 표기식  (0) 2023.07.19
[백준/파이썬]10799 쇠막대기  (0) 2023.07.19
[알고리즘] 가장 큰 수  (0) 2023.07.17

관련글 더보기