-
[1935] 후위 표기식2 (Python)[Python] 알고리즘/Silver 2021. 11. 1. 17:29
[문제]
https://www.acmicpc.net/problem/1935
알고리즘 분류는 자료 구조, 스택 입니다.
후위 표기식 입력을 받을 때, A~Z 영대문자를 받기 때문에 ASCII 코드를 이용하여 해당 자리의 값을 찾아야 합니다.
(li[A - A] = li[0] / li[B - A] = li[1])
[코드]
import sys N = int(sys.stdin.readline()) post = list(sys.stdin.readline().rstrip()) li = list() for i in range(N): li.append(int(sys.stdin.readline())) stack = list() for p in post: if p == "+" or p == "-" or p == "*" or p == "/": a = stack.pop() b = stack.pop() if p == "+": stack.append(a + b) elif p == "-": stack.append(b - a) elif p == "*": stack.append(b * a) elif p == "/": stack.append(b / a) else: stack.append(li[ord(p) - ord("A")]) print("{:.2f}".format(round(stack[0], 2)))
'[Python] 알고리즘 > Silver' 카테고리의 다른 글
[1900] 레슬러 (Python) (0) 2021.11.03 [5648] 역원소 정렬 (Python) (0) 2021.11.02 [11478] 서로 다른 부분 문자열의 개수 (Python) (0) 2021.10.31 [10815] 숫자 카드 (Python) (0) 2021.10.29 [9536] 여우는 어떻게 울지? (Python) (0) 2021.10.28