Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

작은 지식주머니

백준 파이썬 후위 표기식2 본문

백준 python 기록

백준 파이썬 후위 표기식2

작지 2022. 4. 11. 22:37

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