[๋ฐฑ์ค] 9012 - ๊ดํธ
๐ก๋ฌธ์ ๋ถ์ ์์ฝ
-- ๋ฌธ์ --
์ ๋ ฅ : T, ( , )
- () ๊ดํธ๋ฌธ์์ด์ด VPS์ธ์ง ์๋์ง ํ๋จํด์ YES / NO ํ์
๐ก์๊ณ ๋ฆฌ์ฆ ์ค๊ณ
T : ํ ์คํธ ๋ฐ์ดํฐ ์ ์ ๋ ฅ
์คํ ์ด๊ธฐํ
( ๋๋ ) ์ ๋ ฅ๋ฐ์ ๋ณ์ ์์ฑ ํ ์กฐ๊ฑด๋ฌธ ์ด์ฉ
๐ก์ฝ๋
T=int(input())
stack=[]
for j in T:
s=input()
for i in range s:
if(i=='('):
stack.append(i)
else:
if(len(stack)==0):
print("False")
break
else:
stack.append(i)
๐ก์๊ฐ๋ณต์ก๋
O(N)
๐กํ๋ฆฐ ์ด์
'()))))))' : ์ด ๊ฒฝ์ฐ์ ๊ตฌํ ๋ฐฉ๋ฒ์ด ์๊ฐ๋์ง ์์.
๋ฌธ์ ์ ์กฐ๊ฑด์ ๊ตฌํํ๋ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋ค.
๐กํ๋ฆฐ ๋ถ๋ถ ์์ or ๋ค๋ฅธ ํ์ด
T = int(input())
for i in range(T):
stack = []
a=input()
for j in a:
if j == '(':
stack.append(j)
elif j == ')':
if stack:
stack.pop()
else: # ์คํ์ ๊ดํธ๊ฐ ์์๊ฒฝ์ฐ NO
print("NO")
break
else: # break๋ฌธ์ผ๋ก ๋๊ธฐ์ง ์๊ณ ์ํ๋์๊ฒฝ์ฐ ์ํํ๋ค
if not stack: # break๋ฌธ์ผ๋ก ์๋๊ธฐ๊ณ ์คํ์ด ๋น์ด์๋ค๋ฉด ๊ดํธ๊ฐ ๋ค ๋ง๋๊ฑฐ๋ค.
print("YES")
else: # break์ ๊ฑธ๋ ธ๋๋ผ๋ ์คํ์ ๊ดํธ๊ฐ ๋ค์ด์๋ค๋ฉด NO์ด๋ค.
print("NO")
๐ก๋๋์ or ๊ธฐ์ต ํ ์ ๋ณด
์ฒ์ ์ฝํ ๋ฅผ ์ ํ๋ค๋ณด๋ ์ ๊ทผํ๋๋ฐ ์ด๋ ค์์ ๋๋. -> ๋ฌธ์ ๋ง์ด ์ ํด๋ณด๊ธฐ.
๊ฐ๋ ๋ง ๊ณต๋ถํ์ง ๋ง๊ณ ๊ธฐ๋ณธ ๊ตฌํํ ์ฝ๋ ๋ง์ด ์ ํด๋ณด๊ธฐ.
break์์ด ์ ์์ ์ผ๋ก ๋๋ฌ์ ๋๋ฅผ else๋ก ๊ตฌํ.
ย