๋ฌธ์
๊ท ํ์กํ ์ธ์ ๋ฌธ์ ์ ๋๋ค. stack์ ํ์ฉํ๋ ๊ดํธ ๋ฌธ์ ์ ์ฝ๊ฐ์ ์์ฉ์ด ๋ํด์ง ๋ฌธ์ ์์ต๋๋ค. ๊ธฐ์กด์ ๊ดํธ ๋ฌธ์ ์ ๋ค๋ฅธ ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๊ดํธ์ ๋๊ดํธ๋ฅผ ๋ชจ๋ ๋์์ ์.
- ๊ดํธ ์์๋ ๊ท ํ์ด ์กํ์์ด์ผ ํจ.
์ฐจ์ด์ ์ ์ดํด๋ณด๋ฉด ๋ญ๊ฐ ์ด๋ ค์ธ ๊ฒ ๊ฐ์ง๋ง, ๋จ์ํ๊ฒ open bracket์ด ๋ค์ด์ค๋ฉด ์คํ์ ๋ฃ๊ณ , close bracket์ด ๋ค์ด์ค๋ฉด ์คํ์์ ๋นผ์ค ํ ์ง์ด ๋ง๋์ง๋ฅผ ์ดํด๋ณด๋ฉด ๋๋ ๋ฌธ์ ์์ต๋๋ค.
์ ๋ต์ฝ๋
# 4949 ๊ท ํ์กํ ์ธ์
while True :
s = input()
if(s == '.') :
break
check = []
isBalanced = True
for c in s :
if c in ['(','['] :
check.append(c)
elif c in [')',']'] :
if check :
recentBracket = check.pop()
if not ( (c is ')' and recentBracket is '(') or (c is ']' and recentBracket is '[')) :
isBalanced = False
break
else : # check ๋ฐฐ์ด์ด ๋น์ด์๋ ๋ฐ close bracket์ด ๋ค์ด์จ ๊ฒฝ์ฐ
isBalanced = False
break
if(check or not isBalanced) :
print("no")
else :
print("yes")