728x90
반응형
문제요약 (1918. 후위표기식)
1918번: 후위 표기식
첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의
www.acmicpc.net
풀이를 위한 부연 설명
- 연산자의 우선순위를 기준으로 스택에 쌓아야한다.
- 괄호 처리에 유의해야한다.
- 스택에 대한 자세한 개념 설명과 연관 문제는 다음 링크를 참고하면 된다.
[구버전] [Python] 03. 스택과 큐
📌 스택이란? 📚 스택 알아보기 📃 스택 (stack) 데이터를 임시 저장할 때 사용하는 자료구조 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) : 스
daradarav.tistory.com
코드
import sys
input = sys.stdin.readline
exp = input().rstrip()
stack = []
ans = ""
idx = 0
while idx < len(exp):
e = exp[idx]
if e == "(":
stack.append(e)
elif e == ")":
while stack and stack[-1] != "(":
ans += stack.pop()
stack.pop()
elif e == "*" or e == "/":
while stack:
if stack[-1] == "*" or stack[-1] == "/":
ans += stack.pop()
else:
break
stack.append(e)
elif e == "+" or e == "-":
while stack and stack[-1] != "(":
ans += stack.pop()
stack.append(e)
else:
ans += e
idx += 1
while stack:
ans += stack.pop()
print(ans)
기억할 점
- 괄호 없는 후위 표기식은 만들기 쉬웠는데 이후가 어려웠다
반응형
'코딩 테스트 > 파이썬 문제 풀이' 카테고리의 다른 글
[백준] 1654번 파이썬 - 이분탐색 (0) | 2024.02.27 |
---|---|
[백준] 2800번 파이썬 - 스택, 조합 (0) | 2024.02.26 |
[백준] 16113번 파이썬 - 문자열, 구현 (1) | 2024.01.25 |
[백준] 1931번 파이썬 - 그리디 (0) | 2024.01.19 |
[백준] 11286번 파이썬 - 우선순위 큐 (0) | 2024.01.19 |