๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver2] 5397๋ฒˆ_ํ‚ค๋กœ๊ฑฐ

Dbswnstjd 2023. 3. 13. 20:53

๋ฌธ์ œ

https://www.acmicpc.net/problem/5397

 

5397๋ฒˆ: ํ‚ค๋กœ๊ฑฐ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ•์‚ฐ์ด๊ฐ€ ์ž…๋ ฅํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ธธ์ด๊ฐ€ L์ธ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ L ≤ 1,000,000) ๊ฐ•์‚ฐ์ด๊ฐ€ ๋ฐฑ์ŠคํŽ˜์ด์Šค๋ฅผ ์ž…

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 5397๋ฒˆ ๋ฌธ์ œ - ํ‚ค๋กœ๊ฑฐ
n = int(input())
l = []
for _ in range(n):
    l.append(list(input()))
for i in range(n):
    stack_l = []
    stack_r = []
    for cmd in l[i]:
        if cmd == '<':
            if stack_l:
                stack_r.append(stack_l.pop())
        elif cmd == '>':
            if stack_r:
                stack_l.append(stack_r.pop())
        elif cmd == '-':
            if stack_l:
                stack_l.pop()
        else:
            stack_l.append(cmd)
    print(''.join(stack_l + list(reversed(stack_r))))