๊ธ€ ์ž‘์„ฑ์ž: ์ด์ง€์›๐ŸŒฉ๏ธ
 

17413๋ฒˆ: ๋‹จ์–ด ๋’ค์ง‘๊ธฐ 2

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋ฌธ์ž์—ด์—์„œ ๋‹จ์–ด๋งŒ ๋’ค์ง‘์œผ๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ €, ๋ฌธ์ž์—ด S๋Š” ์•„๋ž˜์™€๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚จ๋‹ค. ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž('a'-'z'), ์ˆซ์ž('0'-'9'), ๊ณต๋ฐฑ(' '), ํŠน์ˆ˜ ๋ฌธ์ž('<', '>')๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋ฌธ์ž์—ด์—์„œ ๋‹จ์–ด๋งŒ ๋’ค์ง‘์œผ๋ ค๊ณ  ํ•œ๋‹ค.
๋จผ์ €, ๋ฌธ์ž์—ด S๋Š” ์•„๋ž˜์™€๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚จ๋‹ค.
์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž('a'-'z'), ์ˆซ์ž('0'-'9'), ๊ณต๋ฐฑ(' '), ํŠน์ˆ˜ ๋ฌธ์ž('<', '>')๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์€ ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋‹ค.
'<'์™€ '>'๊ฐ€ ๋ฌธ์ž์—ด์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋“ฑ์žฅํ•˜๋ฉฐ, '<'์ด ๋จผ์ € ๋“ฑ์žฅํ•œ๋‹ค. ๋˜, ๋‘ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ฐ™๋‹ค.
ํƒœ๊ทธ๋Š” '<'๋กœ ์‹œ์ž‘ํ•ด์„œ '>'๋กœ ๋๋‚˜๋Š” ๊ธธ์ด๊ฐ€ 3 ์ด์ƒ์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด๊ณ , '<'์™€ '>' ์‚ฌ์ด์—๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ๋งŒ ์žˆ๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด๊ณ , ์—ฐ์†ํ•˜๋Š” ๋‘ ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•˜๋‚˜๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ํƒœ๊ทธ๋Š” ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ํƒœ๊ทธ์™€ ๋‹จ์–ด ์‚ฌ์ด์—๋Š” ๊ณต๋ฐฑ์ด ์—†๋‹ค.

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

# https://www.acmicpc.net/problem/17413
# ๋‹จ์–ด ๋’ค์ง‘๊ธฐ2
import sys
from collections import deque

word = sys.stdin.readline().strip()
stack = deque()

for s in word:
    if s == "<":
        while len(stack) > 0:
            print(stack.pop(), end="")
        stack.append(s)
    elif s == ">":
        stack.append(s)
        while len(stack) > 0:
            print(stack.popleft(), end="")
    elif s == " " and stack[0] != "<":
        while len(stack) > 0:
            print(stack.pop(), end="")
        print(" ", end="")
    else:
        stack.append(s)

while len(stack) > 0:
    print(stack.pop(), end="")
print()

 

  • collections์˜ deque๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ •์ž‘ ๋ณ€์ˆ˜๋ช…์€ stack
  • <๋Š” ํƒœ๊ทธ์˜ ์‹œ์ž‘์ ์„ ๋œปํ•œ๋‹ค. <๋ฅผ ๋งŒ๋‚˜๋ฉด ํƒœ๊ทธ ์•ˆ์˜ ๋‚ด์šฉ์ด ๋๋‚ฌ๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, stack์— ์š”์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด ๋ชจ๋‘ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ์— <๋ฅผ stack์— ๋„ฃ์–ด์ค€๋‹ค.
  • >๋Š” ํƒœ๊ทธ์˜ ๋์„ ๋œปํ•œ๋‹ค. stack์— ๋“ค์–ด์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋˜, deque์˜ popleft()๋ฅผ ํ™œ์šฉํ•ด์„œ ์•ž์—์„œ๋ถ€ํ„ฐ ์ถœ๋ ฅํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌธ์ œ์—์„œ ํƒœ๊ทธ๋Š” ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์ง‘์ง€ ์•Š์•„์•ผํ•œ๋‹ค๊ณ  ๋ช…์‹œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ๊ณต๋ฐฑ์ด๋ผ๋ฉด, stack์— ์ฒซ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ <์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ํƒœ๊ทธ ์•ˆ์˜ ๊ณต๋ฐฑ์€ ๋ฌด์‹œํ•˜๊ณ  ๋„˜์–ด๊ฐ€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹จ์–ด๋ผ๋ฉด pop()์„ ์ด์šฉํ•ด์„œ ๋’ค์ง‘์–ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ๋Š” ํƒœ๊ทธ ๋‚ด์šฉ์ด๊ฑฐ๋‚˜, ๋‹จ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— stack์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  • wordํƒ์ƒ‰์ด ๋๋‚ฌ๋‹ค๋ฉด, stack์ด ๋นŒ ๋•Œ๊นŒ์ง€ ๋’ค์ง‘์–ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•