728x90
๋ฐ์ํ
https://school.programmers.co.kr/learn/courses/30/lessons/76502
"""
๋ค์ ๊ท์น์ ์งํค๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.
(), [], {} ๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์
๋๋ค.
๋ง์ฝ A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (A), [A], {A} ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์
๋๋ค.
์๋ฅผ ๋ค์ด, [] ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, ([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์
๋๋ค.
๋ง์ฝ A, B๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, AB ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์
๋๋ค.
์๋ฅผ ๋ค์ด, {} ์ ([]) ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, {}([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์
๋๋ค.
๋๊ดํธ, ์ค๊ดํธ, ๊ทธ๋ฆฌ๊ณ ์๊ดํธ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ด s๋ฅผ ์ผ์ชฝ์ผ๋ก x (0 ≤ x < (s์ ๊ธธ์ด)) ์นธ๋งํผ ํ์ ์์ผฐ์ ๋
s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๊ฒ ํ๋ x์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
"""
def solution(s):
ans, pair = 0, {'{':'}', '[':']', '(':')'}
for i in range(len(s)):
iscorrect, stack = True, []
for v in s:
if v in ['{','[','(']: stack.append(v)
elif not stack or v != pair[stack[-1]]: iscorrect = False
else: stack = stack[:-1]
ans += int(iscorrect and not stack)
s = s[1:]+s[0]
return ans
"""
์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด์ ๊ธฐ์ค์ ๋จผ์ ์๊ฐํด๋ณด์๋ค.
1. ์ด๋ฆฐ ๊ธฐํธ๊ฐ ๋์ค๊ธฐ ์ ์ ๋ซํ ๊ธฐํธ๊ฐ ๋์ค๋ฉด ์๋๋ค.
2. ๋ซํ ๊ธฐํธ๊ฐ ๋์ฌ๋ ์ง์ด ๋ง์์ผ ํ๋ค.
๊ทธ๋์ stack์ผ๋ก ์๊ฐํด์ ํ์๋ค.
๋จผ์ ๋ต์ ์ ์ฅํ ์ธํธ ans, ์๋ก์ ์ง์ ๋ง์ถ ๋์
๋๋ฆฌ pair๋ณ์๋ฅผ ์ ์ธํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด์ ํ๋ฐํด ๋๋ฆฌ๋ฉด์ ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด์ธ์ง ์ฒดํฌํด์ผํ๋ฏ๋ก
for๋ฌธ์ผ๋ก s์ ๊ธธ์ด๋งํผ ๋๋ ค์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด์ธ์ง ํ๋จํ๋ iscorrect๋ณ์, stack์ ์ ์ธํ์๋ค.
๋ฌธ์์ด s๋ฅผ ํ๋์ฉ ๊บผ๋ด์ค๊ธฐ ์ํด for๋ฌธ์ ๋๋ ค์ฃผ์๊ณ ,
์์ ์ ์ด๋์ 1, 2๋ฒ์ ์ฒดํฌํ๋ค.
(if) ๋จผ์ ์ด๋ฆฐ๊ธฐํธ๊ฐ ๋์ฌ๊ฒฝ์ฐ stack์ ๋ฃ์ด์ฃผ์๋ค.
(elif) ๋ซํ๊ธฐํธ๊ฐ ๋์จ๋ค๋ฉด 1๋ฒ๊ฒฝ์ฐ ๋๋ 2๋ฒ๊ฒฝ์ฐ์ ํด๋นํ๋ค๋ฉด False
(else) 1, 2๋ฒ์ด ์ถฉ์กฑํ๋ฉด stack์์ ์ด๋ฆฐ๊ธฐํธ ํ๋๋ฅผ ์ง์์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด์ ๋ค ๊ฒ์ฌํ์์ผ๋ฉด ans์ 1์ ์ถ๊ฐ์์ผ์ค๋ค.
์ด๋ ์์ง stack์ ์ด๋ฆฐ๊ธฐํธ๊ฐ ๋จ์์๋ค๋ฉด ํ๋ฆฐ๋ฌธ์์ด์ด๋ฏ๋ก ์ด๊ฒฝ์ฐ๋ 0์ ๋ํด์ค๋ค.
๋ง์ง๋ง์ผ๋ก s์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ก ์ฎ๊ฒจ์ ํ์นธ ๋๋ ค์ค๋ค.
"""
728x90
๋ฐ์ํ
'๐ผ๐ก๐๐ค๐ง๐๐ฉ๐๐ข > ๐๐ง๐ค๐๐ง๐๐ข๐ข๐๐ง๐จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค '[3์ฐจ] ๋ฐฉ๊ธ๊ทธ๊ณก' ํ์ด์ฌ ํ์ด (0) | 2023.05.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค '์๊ฒฉ ์์คํ ' ํ์ด์ฌ ํ์ด (0) | 2023.05.17 |
ํ๋ก๊ทธ๋๋จธ์ค 'ํผ์์ ํ๋ ํฑํํ ' ํ์ด์ฌ ํ์ด (0) | 2023.04.26 |
ํ๋ก๊ทธ๋๋จธ์ค '๊ณต์ ์ฐ์ฑ ' ํ์ด์ฌ ํ์ด (0) | 2023.04.26 |
ํ๋ก๊ทธ๋๋จธ์ค '์ฝ๋ ์ฒ๋ฆฌํ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.04.24 |
๋๊ธ