BOJ 17413번 단어 뒤집기 2 Python 문제 풀이
분류: String (문자열)
https://www.acmicpc.net/problem/17413
from sys import stdin
def main():
x = stdin.readline().rstrip()
res = ''
stack = []
i = 0
while i < len(x):
if x[i] == '<':
if stack:
res += ''.join(stack[::-1])
stack = []
while x[i] != '>':
res += x[i]
i += 1
res += x[i]
elif x[i] == ' ':
res += ''.join(stack[::-1])
stack = []
res += ' '
else:
stack.append(x[i])
i += 1
if stack:
res += ''.join(stack[::-1])
print(res)
if __name__ == "__main__":
main()
문자열의 각 문자를 탐색하면서 태그가 아닌 경우 스택에 넣고, 공백이나 '<'를 만나면 결과값에 스택의 원소들을 꺼내어 넣는다. 그리고 태그 내의 문자들은 스택에 넣지 않고 결과 값에 추가한다.
문자 탐색을 모두 마치고, 스택에 값이 남아있으면 마지막으로 결과값에 스택 원소들을 넣고 결과를 출력한다.