Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 힙
- 수학
- 재귀
- level3
- 스택
- 프로그래머스
- level1
- 브루트포스
- 가상메모리
- programmers
- 딕셔너리
- 그리디
- 파이썬
- BFS
- 구현
- level0
- 코딩테스트
- BOJ
- 다이나믹 프로그래밍
- 다익스트라
- N과M
- dict
- 가상메모리 관리
- 운영체제
- 백준
- DP
- level2
- MYSQL
- dfs
- python
Archives
- Today
- Total
동캄의 코딩도장
백준 1935 [후위 표기식2] 파이썬 본문
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이
www.acmicpc.net
# 백준 1935 후위표기식2
import sys
import math
input = sys.stdin.readline
N = int(input())
lst = list(map(str, input().rstrip()))
val = [0]*(26)
for i in range(N):
val[ord('A')+i-65] = int(input())
i = 0
stack = []
for value in lst:
if 'A' <= value <= 'Z':
stack.append(val[ord(value)-65])
else:
two = stack.pop()
one = stack.pop()
if value == '+':
stack.append(one+two)
elif value == '-':
stack.append(one-two)
elif value == '*':
stack.append(one*two)
elif value == '/':
stack.append(one/two)
print("{:.2f}".format(stack[0]))
'코테 > BOJ' 카테고리의 다른 글
백준 2491[수열] 파이썬 (0) | 2022.09.07 |
---|---|
백준 2504 [괄호의 값] 파이썬 (1) | 2022.09.07 |
백준 9507 [Generations of Tribbles] 파이썬 (0) | 2022.09.05 |
백준 2407 [조합] 파이썬 (0) | 2022.09.05 |
백준 1904 [01 타일] 파이썬 (0) | 2022.09.05 |