[๋ฐฑ์ค/python] 9012๋ฒ : ๊ดํธ
๋ฌธ์
๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ ์์ ๊ดํธ ๊ธฐํธ๋ก ๋ “( )” ๋ฌธ์์ด์ ๊ธฐ๋ณธ VPS ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ง์ผ x ๊ฐ VPS ๋ผ๋ฉด ์ด๊ฒ์ ํ๋์ ๊ดํธ์ ๋ฃ์ ์๋ก์ด ๋ฌธ์์ด “(x)”๋ VPS ๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ VPS x ์ y๋ฅผ ์ ํฉ(concatenation)์ํจ ์๋ก์ด ๋ฌธ์์ด xy๋ VPS ๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด “(())()”์ “((()))” ๋ VPS ์ด์ง๋ง “(()(”, “(())()))” , ๊ทธ๋ฆฌ๊ณ “(()” ๋ ๋ชจ๋ VPS ๊ฐ ์๋ ๋ฌธ์์ด์ด๋ค.
์ฌ๋ฌ๋ถ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๊ดํธ ๋ฌธ์์ด์ด VPS ์ธ์ง ์๋์ง๋ฅผ ํ๋จํด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ YES ์ NO ๋ก ๋ํ๋ด์ด์ผ ํ๋ค.
์ ๋ ฅ
์ ๋ ฅ ๋ฐ์ดํฐ๋ ํ์ค ์ ๋ ฅ์ ์ฌ์ฉํ๋ค. ์ ๋ ฅ์ T๊ฐ์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ์ฃผ์ด์ง๋ค. ์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์๋ฅผ ๋ํ๋ด๋ ์ ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ๋ฐ์ดํฐ์ ์ฒซ์งธ ์ค์๋ ๊ดํธ ๋ฌธ์์ด์ด ํ ์ค์ ์ฃผ์ด์ง๋ค. ํ๋์ ๊ดํธ ๋ฌธ์์ด์ ๊ธธ์ด๋ 2 ์ด์ 50 ์ดํ์ด๋ค.
์ถ๋ ฅ
์ถ๋ ฅ์ ํ์ค ์ถ๋ ฅ์ ์ฌ์ฉํ๋ค. ๋ง์ผ ์ ๋ ฅ ๊ดํธ ๋ฌธ์์ด์ด ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(VPS)์ด๋ฉด “YES”, ์๋๋ฉด “NO”๋ฅผ ํ ์ค์ ํ๋์ฉ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์ ๋ต
import sys
T = int(sys.stdin.readline())
answer = []
for i in range(T):
vps = list(input())
stack = []
a = "YES"
for n in vps:
if n == ")":
# stack์ "("๊ฐ ์๋ ๊ฒฝ์ฐ
if not stack:
a = "NO"
break
ps = stack.pop()
# n == "("
else:
stack.append(n)
# ์ง์ง์ด์ง "("๊ฐ ์๋ ๊ฒฝ์ฐ
if stack:
a = "NO"
answer.append(a)
for i in answer:
print(i)
์ฌ๋ ๊ดํธ๊ฐ ๋์ค๋ฉด stack์ ๋ฃ์ด์ฃผ๊ณ ๋ซ๋ ๊ดํธ๊ฐ ๋์์ ๋ stack์์ pop()ํด์ฃผ๋ ๋ฐฉ์์ด๋ค.
์ด ๊ณผ์ ์ ์ํํ ๋ NO๊ฐ ๋์ฌ ๊ฒฝ์ฐ๋ฅผ ๊ฑธ๋ฌ a์ "NO"๋ฅผ ์ ์ฅํ๋ค.
"NO"๊ฐ ๋์์ผ ํ๋ ๊ฒฝ์ฐ
- "("๊ฐ ๋์ค๊ธฐ ์ ์ ")"๊ฐ ๋์ค๋ ๊ฒฝ์ฐ : ")"๊ฐ ๋ค์ด์์ ๋ stack์ด ๋น์ด์์ ๊ฒฝ์ฐ
- ")"์ ์ง์ง์ "("๊ฐ ์๋ ๊ฒฝ์ฐ : ")"๊ฐ ๋ค์ด์์ ๋ stack์ด ๋น์ด์์ ๊ฒฝ์ฐ
- "("์ ์ง์ง์ ")"๊ฐ ์๋ ๊ฒฝ์ฐ : ๋ฌธ์ฅ์ ๋ชจ๋ ๊ดํธ๋ฅผ ํ์ธํ ํ์๋ stack์ "("๊ฐ ๋จ์์์ ๊ฒฝ์ฐ
์๋ ํฌ์คํ ์ ์ด ๋ฌธ์ ์ ์ ์ฌํ ์์ ์ด๋ค.
2021.03.12 - [๐์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค] - [๋ฐฑ์ค/python] 4949๋ฒ : ๊ท ํ์กํ ์ธ์
[๋ฐฑ์ค/python] 4949๋ฒ : ๊ท ํ์กํ ์ธ์
๋ฌธ์ ์ธ๊ณ๋ ๊ท ํ์ด ์ ์กํ์์ด์ผ ํ๋ค. ์๊ณผ ์, ๋น๊ณผ ์ด๋ ๊ทธ๋ฆฌ๊ณ ์ผ์ชฝ ๊ดํธ์ ์ค๋ฅธ์ชฝ ๊ดํธ์ฒ๋ผ ๋ง์ด๋ค. ์ ๋ฏผ์ด์ ์๋ฌด๋ ์ด๋ค ๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋, ๊ดํธ๋ค์ ๊ท ํ์ด ์ ๋ง์ถฐ์ ธ ์๋์ง ํ๋จ
ye333.tistory.com
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 1182๋ฒ : ๋ถ๋ถ์์ด์ ํฉ (0) | 2021.04.02 |
---|---|
[๋ฐฑ์ค/python] 18258๋ฒ : ํ 2 (0) | 2021.03.30 |
[๋ฐฑ์ค/python] 1149๋ฒ : RGB ๊ฑฐ๋ฆฌ (0) | 2021.03.30 |
[๋ฐฑ์ค/python] 11047๋ฒ : ๋์ 0 (0) | 2021.03.30 |
[๋ฐฑ์ค/python] 1932๋ฒ : ์ ์ ์ผ๊ฐํ (0) | 2021.03.29 |