본문 바로가기
  • 안녕하세요,,, 안녕히가세요,,,,
프로그램/코딩테스트

백준 1935 후위 표기식2

by 차보루타 2022. 6. 13.

 

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

댓글