ํฐ์คํ ๋ฆฌ ๋ทฐ
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ๋ฐ๋ฅธ ๊ดํธ
dirmathfl 2020. 9. 1. 17:38๋ฌธ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ฌ๋ฐ๋ฅธ ๊ดํธ
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด ()() ๋๋ (())() ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค. )()( ๋๋ (()( ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ๏ฟฝ
programmers.co.kr
๋ฌธ์ ํ์ด
๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋, ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋จํ์ฌ true, false๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ์๋ฅผ ๋ค์ด `(())`๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๊ณ , `(()`๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ก์ง์ ๋ฐ๋ผ ์ฒ๋ฆฌํ๋ฉด ๋๋ค.
- stack push. : ํ์ฌ ๋ฌธ์์ด์ด ์ด๋ฆฐ ๊ดํธ
- stack pop : stack์ ๊ฐ์ด ์๊ณ , ํ์ฌ ๋ฌธ์์ด์ด ๋ซํ ๊ดํธ
- ์ด์ธ์ ๊ฒฝ์ฐ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ์๋๋ฏ๋ก, False๋ฅผ ๋ฐํํ๋ค.
- ๋ง์ฝ ๋ฌธ์์ด์ ๋ค ์ํํ์๋๋ฐ, stack์ ๊ดํธ๊ฐ ์๋ค๋ฉด ์ด๋ฆฐ ๊ดํธ๋ก ๋๋๋ ์ผ์ด์ค์ด๋ค.
์ฝ๋
def solution(s):
brackets = {'(': ')'}
'''
๊ดํธ๊ฐ ์ถ๊ฐ ๋๋ค๋ฉด
brackets = {'{': '}', '[': ']', '(': ')'}
'''
stack = []
for string in s:
if string in brackets.keys():
stack.append(string)
elif string in brackets.values():
if stack and string == brackets[stack[-1]]:
stack.pop()
else:
return False
# stack์ ๊ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ, ์ฌ๋ ๊ดํธ์ ์ง์ด ์๋ ๊ฒฝ์ฐ์ด๋ค.
return True if not stack else False
์ด ๋ฌธ์ ๋ ๊ฐ๋จํ์ฌ ๋ฌธ์์ด์ ๊ดํธ๋ง ์ฃผ์ด์ง์ง๋ง, ๋ง์ฝ ๊ดํธ์ ์ข ๋ฅ `()`, `[]`, `{}`๊ฐ ๋ง๊ณ ๋ฌธ์์ ๊ดํธ๊ฐ ์์ฌ ๋ค์ด์จ๋ค๋ฉด ์์ ๊ฐ์ ๋ก์ง์ผ๋ก ํ์ด์ผ ํ๋ค. ๋ํ ๋์ ๋๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ฌ๋ ๊ดํธ์ ๋ฐ๋ผ, ๋ซ๋ ๊ดํธ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ค.
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2020.09.02 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋ฐ๋จน๊ธฐ (0) | 2020.09.01 |
ํ๋ก๊ทธ๋๋จธ์ค: ํ๊ฒ ๋๋ฒ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋คํธ์ํฌ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋จ์ด ๋ณํ (0) | 2020.08.31 |