작은 지식주머니
백준 파이썬 후위 표기식2 본문
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이
www.acmicpc.net
후위 표기식이 뭔지몰라서 조금 해맸는데 스택으로 간단히 해결하였습니다.
A,B,C는 아스키코드로 값을 변환해서 사용하면 되는거고
A B C * + 가 들어왔을 경우 우선 A,B,C를 전부 스텍에 저장
사칙연산이 들어왔다면 스택에서 값을 두개 빼내서 계산 -> 반복 후 출력을 하면 끝나는 문제입니다.
n = int(input())
s = input()
li = [0] * n
for i in range(n):
li[i] = int(input())
stack = []
for i in s:
if 'A' <= i <= 'Z':
stack.append(li[ord(i) - ord('A')])
else:
p2 = stack.pop()
p1 = stack.pop()
if i == '+':
stack.append(p1+p2)
elif i == '-':
stack.append(p1-p2)
elif i == '*':
stack.append(p1*p2)
elif i == '/':
stack.append(p1/p2)
print('%.2f' %stack[0])
'백준 python 기록' 카테고리의 다른 글
백준 파이썬 17298 오큰수 (0) | 2022.04.12 |
---|---|
백준 파이썬 14891 톱니바퀴 (0) | 2022.04.11 |
백준 파이썬 1041 주사위 (0) | 2022.04.08 |
백준 파이썬 11048 이동하기 (0) | 2022.04.05 |
백준 파이썬 6593 상범 빌딩 (0) | 2022.02.26 |
Comments