๐ ๋ฐฑ์ค 9012๋ฒ ๊ดํธ ๋ฌธ์ ํ์ด
1. ๐ ๏ธ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง ํ์ต ํ๊ฒฝ ์ค์
1.1. ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ ์จ๊ธฐ๊ธฐ
๋ฐฑ์ค ๋ฌธ์ ํ์ด์ง ํ๋จ์ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ๊ฐ ํ์๋์ด ์๋ค.
์ด๋ ๋ฌธ์ ํ์ด์ ๋ํ ์คํฌ์ผ๋ฌ๊ฐ ๋ ์ ์์ด ํ์ต ํจ๊ณผ๋ฅผ ์ ํ์ํจ๋ค.
์ค์ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ:
2. ๐ ๋ฐฑ์ค 9012๋ฒ ๊ดํธ ๋ฌธ์ ๊ฐ์
2.1. ๋ฌธ์ ํน์ฑ
๊ดํธ ๋ฌธ์์ด(PS)์ด ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(VPS)์ธ์ง ํ๋จํ๋ ๋ฌธ์ ์ด๋ค.
์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ก ๊ตฌ์ฑ๋์๋ค.
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค YES ๋๋ NO๋ฅผ ์ถ๋ ฅํด์ผ ํ๋ค.
2.2. VPS(Valid PS) ์ ์
ํ ์์ ๊ดํธ ๊ธฐํธ๋ก ๋ “( )” ๋ฌธ์์ด์ ๊ธฐ๋ณธ VPS์ด๋ค.
x๊ฐ VPS๋ผ๋ฉด “(x)”๋ VPS์ด๋ค.
๋ VPS x์ y๋ฅผ ์ ํฉ์ํจ xy๋ VPS์ด๋ค.
์์: “(())()”์ “((()))”๋ VPS์ด๋ค.
๋ฐ๋ก: “(()(“, “(())()))”, “(()”๋ VPS๊ฐ ์๋๋ค.
3. ๐ก ๋ฌธ์ ์ ๊ทผ ๋ฐฉ๋ฒ
3.1. ์คํ ์๋ฃ๊ตฌ์กฐ ํ์ฉ
๊ดํธ ๋งค์นญ ๋ฌธ์ ๋ ์คํ์ ์ด์ฉํ๋ ์ ํ์ ์ธ ๋ฌธ์ ์ด๋ค.
์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ๋งค์นญ ๊ด๊ณ๊ฐ ํ์ ์ ์ถ(LIFO) ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๊ดํธ ์ ๋งค์นญ ์์:
text๊ดํธ ๋งค์นญ ์์:
(1 (2 (3 )3 )2 )1
4. ๐งฎ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
4.1. ํ์ด ๋ก์ง
์ฌ๋ ๊ดํธ(‘(‘)๊ฐ ๋์ค๋ฉด ์คํ์ pushํ๋ค.
๋ซ๋ ๊ดํธ(‘)’)๊ฐ ๋์ค๋ฉด:
๋ชจ๋ ์ฒ๋ฆฌ๊ฐ ๋๋ ํ:
4.2. ํ์ด์ฌ ์ฝ๋ ๊ตฌํ
pythonT = int(input())
for _ in range(T):
s = input()
stack = []
is_vps = True
for ch in s:
if ch == '(':
stack.append(ch)
else: # ch == ')'
if stack: # ์คํ์ด ๋น์ด์์ง ์์ผ๋ฉด
stack.pop()
else: # ์คํ์ด ๋น์ด์์ผ๋ฉด
is_vps = False
break
if stack: # ์คํ์ ๊ดํธ๊ฐ ๋จ์์์ผ๋ฉด
is_vps = False
print("YES" if is_vps else "NO")
5. ๐งช ํ ์คํธ ์ผ์ด์ค ๋ถ์
5.1. ์ฒซ ๋ฒ์งธ ํ ์คํธ ์ธํธ
โ ์ ๋ ฅ: (())()), (((()())(), (()())((())), ((()()(()))(((())))(), ()()()()(()()())(), (()((())()(
โ ์ถ๋ ฅ: NO, NO, YES, NO, YES, NO
5.2. ๋ ๋ฒ์งธ ํ ์คํธ ์ธํธ
โ ์ ๋ ฅ: ((, )), ())(()
โ ์ถ๋ ฅ: NO, NO, NO
5.3. ์์ธ ์ผ์ด์ค ๋ถ์
์ฌ๋ ๊ดํธ๋ง ์๋ ๊ฒฝ์ฐ: ์คํ์ด ๋น์ด์์ง ์์ NO
๋ซ๋ ๊ดํธ๋ง ์๋ ๊ฒฝ์ฐ: ๋น์ด์๋ ์คํ์์ pop ์๋ํ์ฌ NO
๊ดํธ ์์ด ๋ง์ง ์๋ ๊ฒฝ์ฐ: ์ฒ๋ฆฌ ๊ณผ์ ์์ ์ค๋ฅ ๋ฐ์ํ์ฌ NO
6. ๐ ๊ฒฐ๊ณผ ๋ฐ ์ ๋ฆฌ
6.1. ๋ฌธ์ ํด๊ฒฐ ์์ฝ
๊ดํธ ๋ฌธ์ ๋ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ์๋ค.
์๊ฐ ๋ณต์ก๋: O(n) (n์ ๋ฌธ์์ด ๊ธธ์ด)
๊ณต๊ฐ ๋ณต์ก๋: O(n) (์ต์ ์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ดํธ๋ฅผ ์คํ์ ์ ์ฅ)
6.2. ํต์ฌ ํ์ต ํฌ์ธํธ
๊ดํธ ๋งค์นญ ๋ฌธ์ ๋ ์คํ์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์์์ด๋ค.
์คํ์ LIFO ํน์ฑ์ด ๊ดํธ ์ ๋งค์นญ์ ์ ํฉํ๋ค.
๋ฌธ์ ๋ฅผ ํ ๋ ์์ธ ์ผ์ด์ค ์ฒ๋ฆฌ๊ฐ ์ค์ํ๋ค.