[알고리즘/백준] 1918: 후위 표기식(python)
후위 표기식 2보다 조금 더 어렵다.
괄호가 제일 구현하기 어려웠다. 여는 괄호를 방패라고 생각하고 풀면 쉽다. 괄호보다 먼저 들어간 기호들은 괄호가 있는 한 계속 순위가 밀리게 된다.
a = input()
stack = []
ans = []
for i in a:
if i.isalpha():
ans.append(i)
else:
if i == '(':
stack.append(i)
elif i == '*' or i == '/':
while stack and (stack[-1] == '*' or stack[-1] == '/'):
ans.append(stack.pop())
stack.append(i)
elif i == '+' or i == '-':
while stack and stack[-1] != '(':
ans.append(stack.pop())
stack.append(i)
elif i == ')':
while stack and stack[-1] != '(':
ans.append(stack.pop())
stack.pop()
while stack:
ans.append(stack.pop())
print(*ans, sep='')
Author And Source
이 문제에 관하여([알고리즘/백준] 1918: 후위 표기식(python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y7y1h13/알고리즘백준-1918-후위-표기식python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)