import sys
input = sys.stdin.readline
count = int(input())
formula = input().strip()
num = []
result = []
for _ in range(count) :
num.append(int(input()))
for thhh in formula :
if 'A' <= thhh <='Z' :
result.append(num[ord(thhh) - ord('A')])
else :
a2 = result.pop()
a1 = result.pop()
if thhh == '+' :
result.append(a1+a2)
elif thhh == '-' :
result.append(a1-a2)
elif thhh == '/' :
result.append(a1/a2)
elif thhh == '*' :
result.append(a1*a2)
print('%.2f' %result[0])
스택을 이용해 해결했다.
ord 함수를 통해 유니코드로 변환해 A부터 몇번째 알파벳인지 알아내 num배열에 있는 숫자와 일치시켜 push하고, 알파벳이 아닌 다른 입력값이 들어오면 해당 연산을 해주었다.
'프로그램 > 코딩테스트' 카테고리의 다른 글
백준 3040 백설 공주와 일곱 난쟁이 (0) | 2022.06.13 |
---|---|
백준 2075 N번째 큰 수 (0) | 2022.06.13 |
백준 5397 키로거 (0) | 2022.06.13 |
백준 7785 회사에 있는 사람 (0) | 2022.06.13 |
백준 1302 베스트셀러 (0) | 2022.06.13 |
댓글