[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ /ํ์ด์ฌ /Python
๐กsolutions )
๐ฌ ๋ฐ๋ณต๋ฌธ์์ ๋์จ ๊ดํธ๊ฐ "( " ๊ดํธ๋ฉด stack์ ๋ฃ๊ณ , ")"๊ฐ ๋์ค๋ฉด stack์ ๋งจ ๋ง์ง๋ง ์์๊ฐ "("๊ดํธ๋ก ๋ง๋ ์ง ํ์ธํ๊ณ ์ง์ด ๋ง๋ ๊ฒฝ์ฐ ๋งจ ๋ง์ง๋ง ์์์ธ "("๋ฅผ pop์ผ๋ก ์ ๊ฑฐํ๋ค. ์ฆ, "("์")"๊ฐ ๋ง๋ ๋๋ง stack์์ "("์ ๊ฑฐ
๐ฌ ๋จ, stack์ด ๋น์ด์์ ๋ ๋์จ ์์๊ฐ ")"์ด๋ฉด ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ ๋ฐ๋ก False๋ฅผ ๋ฆฌํดํ๋ค.
๐ฌ ๊ทธ ์๋ ์ฐธ๊ณ ๋ก ๊ฐ์ ธ์จ ์ฝ๋๋ ๊ดํธ ์ข
๋ฅ๊ฐ ๋๊ฐ์ด๋ "("์ธ ๊ฒฝ์ฐ +1, ")"์ธ ๊ฒฝ์ฐ -1์ ํ์ฌ ์ต์ข
๊ฒฐ๊ณผ๊ฐ์ด 0์ด ๋๋์ง ํ์ธํ๋ ๋ก์ง์ด๋ค.
๐ซcode )
โ ๋์ ํ์ด
def solution(s):
stack = []
for i in range(len(s)):
if not stack and s[i] == ')':
return False
if s[i] == '(':
stack.append('(')
else:
if stack[-1] == '(':
stack.pop()
else:
return False
else:
return False if stack else True
โ ์ฐธ๊ณ ํ ๋งํ ํ์ด
def solution(s):
x = 0
for w in s:
if x < 0:
break
x = x + 1 if w == "(" else x - 1
return x == 0
๐ description )
๋ฌธ์ ์ถ์ฒ : programmers.co.kr/learn/courses/30/lessons/12909?language=python3
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ฌ๋ฐ๋ฅธ ๊ดํธ
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด ()() ๋๋ (())() ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค. )()( ๋๋ (()( ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ๏ฟฝ
programmers.co.kr
์ฌ๋ฐ๋ฅธ ๊ดํธ
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ
์
์ถ๋ ฅ ์ ![]()
|