<๊ตฌํ, ๋ฌธ์์ด> ๋ฐฑ์ค 17413๋ฒ. ๋จ์ด ๋ค์ง๊ธฐ 2 (์ค๋ฒ 3)
https://www.acmicpc.net/problem/17413
17413๋ฒ: ๋จ์ด ๋ค์ง๊ธฐ 2
๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ๋ฌธ์์ด์์ ๋จ์ด๋ง ๋ค์ง์ผ๋ ค๊ณ ํ๋ค. ๋จผ์ , ๋ฌธ์์ด S๋ ์๋์๊ณผ ๊ฐ์ ๊ท์น์ ์งํจ๋ค. ์ํ๋ฒณ ์๋ฌธ์('a'-'z'), ์ซ์('0'-'9'), ๊ณต๋ฐฑ(' '), ํน์ ๋ฌธ์('<', '>')๋ก๋ง ์ด๋ฃจ์ด์ ธ
www.acmicpc.net
์ฝ๊ฒ ํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ํด๊ฒฐํ์ง ๋ชปํ์๋ค..
ans = ""
tag = False #์ ์์ถ๋ ฅ์ธ์ง ๋ค์ง์ด ์ถ๋ ฅ์ธ์ง ์ฌ๋ถ Tag
stack = ""
for i in input():
if i == "<":
tag = True
ans += stack[::-1]
stack = ""
ans += i
continue
elif i == ">":
tag = False
ans += i
continue
elif i == " ":
ans += stack[::-1] + " "
stack = ""
continue
if tag:
ans += i
else:
stack += i
print(ans+stack[::-1])
๊ธฐํธ "<"๊ฐ ๋์ค๋ฉด, ">"๊ฐ ๋์ฌ ๋๊น์ง ์ ์์ถ๋ ฅ์ ํด์ฃผ์ด์ผํ๋ฏ๋ก Tag๋ True๋ก ๋ฐ๊ฟ์ค๋ค.
์ง๊ธ๊ป stack์ ์ ์ฅ๋ ๋ฌธ์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ฃ์ด์ฃผ๊ณ , stack์ ๋ค์ ๋น์์ค๋ค. ์ดํ ans์ ">"๊ฐ ๋์ฌ๋๊น์ง ๋ํด์ค๋ค.
">"๊ฐ ๋์ค๋ฉด Tag๋ False๋ก ๋ฐ๊ฟ์ฃผ๊ณ , ">"๋ฅผ ๋ฃ์ด์ค๋ค.
๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ค์ง๋ ๋จ์ด๊ฐ ๊ตฌ๋ถ๋์ด์ผํ๊ธฐ ๋๋ฌธ์ ๊ณต๋ฐฑ์ด ๋์ค๋ฉด ์ง๊ธ๊น์ง ์คํ์ ์ ์ฅ๋ ๋ฌธ์๋ค์ ๊ฑฐ๊พธ๋ก ans์ ๋ฃ์ด์ค๋ค.
์ด๋ฐ ์ ๊ทผ์ ํ์ง ๋ชปํ ๋ ๋ฐ์ฑํ์..