BOJ: ๋จ์ด ๋ค์ง๊ธฐ2 - 17413๋ฒ
๋ฌธ์
๋ฌธ์์ด 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
์ด ๋น ๋๊น์ง ๋ค์ง์ด์ ์ถ๋ ฅํ๋ค.
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote