백준 1935 파이썬 (후위표기식2)

철웅·2022년 11월 10일
0

BOJ

목록 보기
13/46

문제 : https://www.acmicpc.net/problem/1935

  1. 먼저 입력받은 피연산자의 개수만큼 operand 스택을 초기화
  2. 후위표기식을 입력받은 후 피연산자의 을 operand 스택에 넣기
  3. 후위표기식을 순회
    • 알파벳을 만날 경우 stack에 그 값을 넣기
    • 연산자를 만날 경우 stack에서 값을 두개 씩 빼서 연산
  4. 소수점 둘째 자리까지 출력

💻 Code

import sys
n = int(sys.stdin.readline())
data = sys.stdin.readline().rstrip()
operand = [0] * n     # 피연산자를 저장할 스택
stack = []         # 연산자를 저장할 스택

for i in range(n):
    operand[i] = int(sys.stdin.readline())    # 피연산자값을 받는다

for i in data:
    if('A' <= i <= 'Z'):    # 후위표기식에서 알파벳을 만나면
        stack.append(operand[ord(i)-ord('A')])
    else:                   # 연산자를 만나면
        str2 = stack.pop()
        str1 = stack.pop()
        
        if(i == '+'):
            stack.append(str1+str2)
        elif(i == '-'):
            stack.append(str1-str2)
        elif(i == '*'):
            stack.append(str1*str2)
        elif(i == '/'):
            stack.append(str1/str2)

result = stack[0]
print(f'{result:.2f}')   

  • if('A' <= i <= 'Z') : 알파벳을 찾고 싶다면 이렇게..
  • f-string 방식을 활용하여 마지막에 소수점 둘째자리까지 출력해주었다.

🔎 전체 흐름

0개의 댓글