ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ๋ฐ๋ฅธ ๊ดํธ
dirmathfl 2020. 9. 1. 17:38728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋, ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋จํ์ฌ 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
์ด ๋ฌธ์ ๋ ๊ฐ๋จํ์ฌ ๋ฌธ์์ด์ ๊ดํธ๋ง ์ฃผ์ด์ง์ง๋ง, ๋ง์ฝ ๊ดํธ์ ์ข ๋ฅ `()`, `[]`, `{}`๊ฐ ๋ง๊ณ ๋ฌธ์์ ๊ดํธ๊ฐ ์์ฌ ๋ค์ด์จ๋ค๋ฉด ์์ ๊ฐ์ ๋ก์ง์ผ๋ก ํ์ด์ผ ํ๋ค. ๋ํ ๋์ ๋๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ฌ๋ ๊ดํธ์ ๋ฐ๋ผ, ๋ซ๋ ๊ดํธ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ค.
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2020.09.02 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋ฐ๋จน๊ธฐ (0) | 2020.09.01 |
ํ๋ก๊ทธ๋๋จธ์ค: ํ๊ฒ ๋๋ฒ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋คํธ์ํฌ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋จ์ด ๋ณํ (0) | 2020.08.31 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ