[Python] 백준 17413 - 단어 뒤집기 2 문제 풀이

Boo Sung Jun·2022년 3월 18일
0

알고리즘, SQL

목록 보기
49/70
post-thumbnail

Overview

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()

문자열의 각 문자를 탐색하면서 태그가 아닌 경우 스택에 넣고, 공백이나 '<'를 만나면 결과값에 스택의 원소들을 꺼내어 넣는다. 그리고 태그 내의 문자들은 스택에 넣지 않고 결과 값에 추가한다.
문자 탐색을 모두 마치고, 스택에 값이 남아있으면 마지막으로 결과값에 스택 원소들을 넣고 결과를 출력한다.

0개의 댓글