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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- s์ ๊ธธ์ด๋ 1์ด์ 1,000์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
"[](){}" | 3 |
"}]()[{" | 2 |
"[)(]" | 0 |
"}}}" | 0 |
์์ค ์ฝ๋
def solution(s):
answer = 0
n = len(s)
for i in range(n):
stack = []
for j in range(n):
# ๋ฌธ์์ด ํ์
c = s[(i+j)%n]
# ์ด๋ฆฐ๊ดํธ์ ๊ฒฝ์ฐ
if c=="(" or c=="[" or c=="{":
stack.append(c)
# ๋ซํ๊ดํธ์ ๊ฒฝ์ฐ
else:
# ์คํ์ด ๋น์ด์๋ค๋ฉด 0์ ์ถ๊ฐํ๊ณ ์ข
๋ฃ
if len(stack)==0:
stack.append(0)
break
# ์คํ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ํ์ธํ๊ณ ์ง์ด ๋ง๋ค๋ฉด ์ ๊ฑฐ
elif c==")" and stack[-1]=="(":
stack.pop()
elif c=="]" and stack[-1]=="[":
stack.pop()
elif c=="}" and stack[-1]=="{":
stack.pop()
# ์ง์ด ๋ง์ง ์์ ๊ฒฝ์ฐ 0์ ์ถ๊ฐํ๊ณ ์ข
๋ฃ
else:
stack.append(0)
break
# ์ค๊ฐ์ ์ข
๋ฃ๋์ง ์์๋ค๋ฉด ์คํ์ ๋น์ด์์ผ๋ฏ๋ก +1
if not stack:
answer += 1
return answer
ํ์ด
- for๋ฌธ์ ๋ฐ๋ผ ๊ดํธ ๋ฌธ์์ด์ ํ์
- ๋ฌธ์์ด์ด ์ด๋ฆฐ๊ดํธ์ธ ๊ฒฝ์ฐ ์คํ์ ๊ดํธ๋ฅผ ์ถ๊ฐ
- ๋ฌธ์์ด์ด ๋ซํ๊ดํธ์ธ ๊ฒฝ์ฐ
- ๋ซํ๊ดํธ์ด๋ฉด์ ์คํ์ด ๋น์ด์๋ค๋ฉด ์์ ์ด๋ฆฐ๊ดํธ๊ฐ ์๋ ๊ฒ์ด๋ฏ๋ก ์คํ์ 0์ ์ถ๊ฐํ๊ณ ์ข ๋ฃ
- ๋ซํ๊ดํธ์ ์คํ์ ๋ง์ง๋ง ๋ฌธ์์ ์ง ๋ง์ถ๊ธฐ (์ง์ด ๋ง๋ค๋ฉด ์ ๊ฑฐ)
- ์ง์ด ๋ง์ง ์๋ค๋ฉด ์คํ์ 0์ ์ถ๊ฐํ๊ณ ์ข ๋ฃ
- ์ค๊ฐ์ ์ข ๋ฃ๋์๋ค๋ฉด ์คํ์ 0์ด ์์ ๊ฒ์ด๊ณ ์๋๋ผ๋ฉด ์คํ์ด ๋น์ด์์ ๊ฒ์ด๋ฏ๋ก answer + 1
๋ฌธ์์ด์ ํ์ ํ๋ฉด์ ์ง์ ๋ง์ถฐ์ผํ๋ ๋ฌธ์ ์๋ค. ๊ฒฝ์ฐ์ ์๋ฅผ ๋๋์ด์ ์๊ฐํ๋ ๊ฒ์ด ์ข ์ด๋ ค์ ๋ค... ์๊ณ ๋ฆฌ์ฆ ์ฑ ์์ ์คํ์ ์์ ๋ฌธ์ ๋ก ๋์์์ด์ ์คํ์ผ๋ก ํ์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ ์ ์์๋๋ฐ ๋ฌธ์ ๋ง ๋ดค์ ๋๋ ์คํ์ ๋ ์ฌ๋ฆฌ๊ธฐ ํ๋ค์์ ๊ฒ ๊ฐ๋ค.
'์ฝ๋ฉ ๋ฌธ์ ํ์ด ๐ป > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.2 ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2024.07.04 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.2 ์ฃผ์๊ฐ๊ฒฉ (0) | 2024.07.01 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ ๋ฌผ (2) | 2024.01.08 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 [PCCP ๊ธฐ์ถ๋ฌธ์ ] 1๋ฒ / ๋ถ๋ ๊ฐ๊ธฐ (1) | 2024.01.07 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ๊ณต์ ์ฐ์ฑ (0) | 2024.01.05 |