https://www.acmicpc.net/problem/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 ์ดํ์ด๋ค.
์๋ฃจ์ :
list์ ๋ฌธ์์ด์ ๋ฐ๋๋ค. '(' ๊ณผ ')'๊ฐ ์์ ์ด๋ฃจ์ด์ผ ํ๋ฏ๋ก, ๋ ๊ฐ๊ฐ ์์ ์ด๋ฃจ๋ฉด pop ์ฒ๋ฆฌํ๋ค. ๊ฒฐ๊ตญ ๋ง์ง๋ง๊น์ง ์๋ฌด๊ฒ๋ ์์ด์ง ์์๋ค๋ฉด yes๋ฅผ ์ถ๋ ฅ, list์ ๋ญ๊ฐ ๋จ์์๋ค๋ฉด no๋ฅผ ์ถ๋ ฅ๋๊ฒ ๋ง๋ ๋ค.
t = int(input())
for i in range(t):
num = input()
stack = []
for j in range(len(num)):
stack.append(num[j])
if len(stack) > 1:
if stack[-2] == '(' and stack[-1] == ')':
stack.pop()
stack.pop()
if len(stack) == 0:
print('YES')
else:
print('NO')
'๐ฉโ๐ป ์๊ณ ๋ฆฌ์ฆ > ๐ข PYTHON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2902๋ฒ (0) | 2024.07.10 |
---|---|
[์คํ ์์ ] ๋ฐฑ์ค 10828๋ฒ (0) | 2024.07.09 |
[์คํ ์์ ] ๋ฐฑ์ค 10773๋ฒ (0) | 2024.07.07 |
๋ฐฐ์ด์ numpy๋ก ๋ณํ (0) | 2023.09.19 |
arange ํจ์ (0) | 2023.09.19 |