-
[백준 / Python] 1935번 후위 표기식2 | 초코더알고리즘/백준 2020. 1. 30. 14:58
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연산자에 대응하는 값이 주어진다. (3번째 줄에는 A에 해당하는 값, 4번째 줄에는 B에 해당하는값 , 5번째 줄에는 C ...이 주어진다, 그리고 피연산자에 대응 하는 값은 정수이다)
www.acmicpc.net
나의 풀이
import sys n=int(input()) str=input() nums=[0]*n for i in range(n): nums[i]=int(input()) stack=[] for ch in str: #문자이면 if ch.isupper(): #nums[해당 문자의 아스키코드에 해당하는 index] stack.append(nums[ord(ch)-ord('A')]) #연산자이면 else: #뒤에 추가된 숫자먼저 빼오고 #이전에 추가된 숫자빼오기 num2=stack.pop() num1=stack.pop() if ch=='+': stack.append(num1+num2) elif ch=='-': stack.append(num1-num2) elif ch=='/': stack.append(num1/num2) elif ch=='*': stack.append(num1*num2) #소수점 두자리까지 출력하는 방법 print(f"{stack[0]:.2f}")
'알고리즘 > 백준' 카테고리의 다른 글
[백준 / Python] 10972번 다음순열 | 초코더 (0) 2020.02.06 [백준 / Python] 1918번 후위 표기식 | 초코더 (0) 2020.01.30 [백준 / Python] 17298번 오큰수 | 초코더 (0) 2020.01.30 [백준 / Python] 10799번 쇠막대기 | 초코더 (0) 2020.01.30 [백준 / Python] 10866번 덱 | 초코더 (0) 2020.01.30