白駿1918号:後列表記式
後記式
白駿1918号:後列表記式
アイデア
コード#コード#
import sys
input = sys.stdin.readline
infix = input().rstrip() + ')'
dic = {'(': 0, '*': 1, '/': 1, '+': 2, '-': 2}
stack = ['(']
i = 0
while stack:
if infix[i].isalpha():
print(infix[i], end='')
elif infix[i] == '(':
stack.append('(')
elif infix[i] == ')':
while stack and stack[-1] != '(':
print(stack.pop(), end='')
stack.pop()
else: # + - * /
if dic[infix[i]] == dic[stack[-1]]:
print(stack.pop(), end='')
elif dic[infix[i]] > dic[stack[-1]]:
while stack[-1] != '(':
print(stack.pop(), end='')
stack.append(infix[i])
i += 1
おしゃべり
去年の初めに資料の構造を勉強したときにCで作ったのを覚えています.思い出が目に浮かぶ.
Reference
この問題について(白駿1918号:後列表記式), 我々は、より多くの情報をここで見つけました https://velog.io/@ks1ksi/백준-1918번-후위-표기식テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol