์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1
<๊ดํธ ํ์ ํ๊ธฐ>
๋ฌธ์ ์ค๋ช
๋ค์ ๊ท์น์ ์งํค๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.
- (), [], {}๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (A), [A], {A} ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
์๋ฅผ ๋ค์ด, [] ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, ([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A, B๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, AB ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
์๋ฅผ ๋ค์ด, {} ์ ([]) ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, {}([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
๋๊ดํธ, ์ค๊ดํธ, ๊ทธ๋ฆฌ๊ณ ์๊ดํธ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ด s๋ฅผ ์ผ์ชฝ์ผ๋ก x (0 ≤ x < (s์ ๊ธธ์ด)) ์นธ๋งํผ ํ์ ์์ผฐ์ ๋
s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๊ฒ ํ๋ x์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
s์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(s):
answer = 0
for i in range(len(s)):
stack=[]
check=True
for j in s: # ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋ณ
if j=='[' or j=='(' or j=='{': # ์ผ์ชฝ ๊ดํธ _ ์ถ๊ฐ
stack.append(j)
elif j==']': # ๊ฐ ์ง์ ๋ง๋ ๊ดํธ์ผ ๊ฒฝ์ฐ ์ ๊ฑฐ, ์๋๋ฉด check=False
if len(stack)!=0 and stack[-1]=='[':
stack.pop()
else:
check=False
elif j==')':
if len(stack)!=0 and stack[-1]=='(':
stack.pop()
else:
check=False
else:
if len(stack)!=0 and stack[-1]=='{':
stack.pop()
else:
check=False
if check==True and len(stack)==0: # ์ฌ๋ฐ๋ฅธ ๊ดํธ๋ผ๋ฉด
answer+=1
s=s[1:]+s[0] # s๋ฅผ ์ผ์ชฝ์ผ๋ก x์นธ๋งํผ ํ์
return answer
Level 2๋ผ๊ธธ๋ ์ด์ง ์์ฃผ ์กฐ๊ธ ๊ฒ์ ๋จน์์ง๋ง ์๊ฐ๋ณด๋ค ๋ง์ด ์ ์ด๋ ค์ ๋ ๋ฌธ์ ์ด๋ค.
๋ฌธ์ ์์ ์๋ ค์ค ๋ด์ฉ ๋ฐ๋ผ์ ๊ตฌํํ๋ฉด ๋ ๐
1) ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋ณ
โ [, (, { ์ ๊ฐ์ด ์ผ์ชฝ ๊ดํธ์ผ ๊ฒฝ์ฐ stack์ ์ ์ฅ
โก stack์ ๋ง์ง๋ง์ ์๋ ์ผ์ชฝ ๊ดํธ์ ์ง์ด ๋ง์ ๊ฒฝ์ฐ stack์์ ์ ๊ฑฐ
โข ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉฐ stack์ ๊ธธ์ด๊ฐ 0์ผ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด๋ก ํ๋ณ
2) s๋ฅผ ์ผ์ชฝ์ผ๋ก x์นธ๋งํผ ํ์
โ ๋ฌธ์์ด์ด๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ์ผ์ชฝ์ผ๋ก ํ์นธ์ฉ ๋๊ธด ๊ฐ์ s์ ์ ์ฅ
์๊ฐ๐ค
๋ฌธ์ ๊ฐ ์กฐ๊ธ ์ฌ์ ๋ ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋๋ ์ฝ๊ฒ ํ์ด์ ๊ธฐ๋ถ์ด ์ข์๋ค.
๊ทธ๋ฐ๋ฐ ์กฐ๊ธ ์ฝ๋์์ ๋ฐ๋ณต๋๋ ๋ถ๋ถ์ด ๋ง์ ๊ฒ ๊ฐ์์ ์ชผ๋ ์์ฃผ ์ชผ๋ ๋ง์ ์ ๋ ๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ๋ฐฉ๋ฌธ ๊ธธ์ด - Summer/Winter Coding(~2018) (0) | 2021.09.09 |
---|---|
[programmers] [3์ฐจ] n์ง์ ๊ฒ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.08 |
[programmers] ๊ดํธ ๋ณํ - 2020 KAKAO BLIND RECRUITMENT (0) | 2021.09.06 |
[programmers] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.04 |
[programmers] ํํ -2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ (0) | 2021.09.04 |