문제 출처 : www.acmicpc.net/problem/1918
문제 해석 : 중위 표현식을 후위 표현식으로 고치는 프로그램을 작성하는 문제이다.
문제 풀이 : 스택을 사용해서 각 상황에 맞게 행동을 해주면 된다. 후위 표현식을 만드는 방식을 문제에서 표현한 대로 하면 풀 수 있다. 다만 괄호가 있음에 유의해서 문제를 풀어야 한다.
풀이 코드
S = list(input())
answer = ""
op = []
alpha = []
while S:
temp = S.pop(0)
#알파벳일 경우
if temp.isalpha():
answer += temp
else:
if temp == "(":
op.append(temp)
elif temp == "*" or temp == "/":
while op and (op[-1] == "*" or op[-1] == "/"):
answer += op.pop()
op.append(temp)
elif temp == "+" or temp == "-":
while op and op[-1] != "(":
answer += op.pop()
op.append(temp)
elif temp == ")":
while op and op[-1] != "(":
answer += op.pop()
op.pop()
while op:
answer += op.pop()
print(answer)
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 1991 트리 순회 문제 풀이 (0) | 2021.01.21 |
---|---|
[알고리즘][Python] 백준 1967 트리의 지름 문제 풀이 (0) | 2021.01.20 |
[알고리즘][Python] 백준 1916 최소비용 구하기 문제 풀이 (0) | 2021.01.20 |
[알고리즘][Python] 백준 1786 찾기 문제 풀이 (0) | 2021.01.19 |
[알고리즘][Python] 백준 1865 웜홀 문제 풀이 (0) | 2021.01.19 |