https://www.acmicpc.net/problem/17413
# 17413.py 단어 뒤집기2
str = input()
ans = list()
stack = list()
flag = 0
for c in str:
# 태그 시작 / 공백
if c == '<':
# 기존 단어 뒤집어서 넣기
while stack:
ans.append(stack.pop())
ans.append(c)
flag = 1
elif c == '>':
ans.append(c)
flag = 0
elif flag == 1:
ans.append(c)
elif c == ' ':
# 기존 단어 뒤집어서 넣기
while stack:
ans.append(stack.pop())
ans.append(c)
else:
stack.append(c)
while stack:
ans.append(stack.pop())
print(''.join(ans))
태그와 단어로 구성되어 있는 문장에서 단어만을 뒤집는게 목표다.
단어 - 태그/공백이 나올 때까지 스택에 넣어두고 단어가 끝나면 ans에 차례대로 pop하게끔 구현했다.
태그 - 태그의 시작과 끝을 알 수 있게 flag 변수를 이용하고, 태그를 뒤집을 필요는 없으니 ans에 그대로 붙였다.