<๊ดํธ ๋ณํ>
๋ฌธ์ (์ถ์ฒ: https://school.programmers.co.kr/learn/courses/30/lessons/60058)
๋ฌธ์ ํ์ด
- my solution
def isbalance(p): #๊ท ํ์ก์ธ ๊ดํธ ๋ฌธ์์ด: u,v
u,v=[],[]
for i in range(1,len(p)+1):
if p[:i].count("(") == p[:i].count(")"):
u=p[:i]
v=p[i:]
break
return u,v
def isright(x): #์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด
stack=[]
result=True
for i in x:
if i=='(':
stack.append(i)
else:
if len(stack)!=0:
stack.pop()
else:
result=False
return result
def recur(p):
answer=''
if len(p)!=0: # ์
๋ ฅ์ด ๋น ๋ฌธ์์ด์ด ์๋ ๊ฒฝ์ฐ
u,v=isbalance(p) # ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด u,v๋ก ๋ถ๋ฆฌ
if isright(u)==True: # u๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด
answer+=u
if len(v)!=0:
answer += recur(v)
else: # u๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ์๋๋ผ๋ฉด
answer='('+recur(v)+')'
x=u[1:len(u)-1] # ์ฒซ๋ฒ์งธ์ ๋ง์ง๋ง ๋ฌธ์ ์ ๊ฑฐ
for i in x: # ๋๋จธ์ง ๋ฌธ์์ด์ ๊ดํธ ๋ฐฉํฅ์ ๋ค์ง์ด์ ๋ถ์ด๊ธฐ
if i=='(':
answer+=')'
else:
answer+='('
return answer
def solution(p):
answer = ''
answer=recur(p)
return answer
๋ช ๋ฒ์ด๋ ์ด ๋ฌธ์ ๋ฅผ ๋ดค์์ง๋ง ๊ฒ๋จน๊ณ ๋์ ํ์ง ์์๋ ๋ฌธ์ ์ด๋ค
์ด๋ฒ์ ๋ฌธ์ ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ์ด๋ดค์ง๋ง ์ฒ์์๋ ๋๊ณต ์ง์ง... ๐ฅ
ํ์ง๋ง ์กฐ๊ธ์ ํํธ๋ ์ป์ผ๋ฉด์ ๋ฌธ์ ์ ๋์์๋ ์กฐ๊ฑด์ ํ๋์ฉ ํด๊ฒฐํด๊ฐ๊ธฐ ์์!
1) ์๋์ ๊ฐ์ด ํจ์๋ฅผ 3๊ฐ๋ก ๊ตฌํ
โ ๊ท ํ ์กํ ๊ดํธ ๋ฌธ์์ด๋ก ๋ถ๋ฆฌ โก ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด ํ๋ณ โข ์กฐ๊ฑด์ ๋ง๊ฒ ์ฌ๊ท๋ฅผ ์ํ ํจ์
์กฐ๊ธ ๋ง์ด ํจ์๋ฅผ ๋๋ ๊ฒ ๊ฐ์ง๋ง ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ ๊ธฐ์ค์ ๋ง์ถฐ ๋๋ ๋ณด์๋ค
2) ํจ์ ์ค๋ช
โ ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด๋ก ๋ถ๋ฆฌ: count๋ฅผ ํ์ฉํ์ฌ ๊ฐ์๊ฐ ๊ฐ์ ๋ u, v๋ฅผ ๋ถ๋ฆฌ
โก ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด ํ๋ณ: stack์ ํ์ฉํ์ฌ '(' ์ผ ๋ ์ถ๊ฐ, ')'์ผ ๋ ์ ๊ฑฐํ์ฌ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ธ์ง ํ๋ณ
โข ์กฐ๊ฑด์ ๋ง๊ฒ ์ฌ๊ท๋ฅผ ์ํ ํจ์: ๋ฌธ์ ์์ ๋งํ 1~4์ ๊ณผ์ ์ ๊ตฌํ
์๊ฐ๐ค
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ์ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ณด๊ณ ๋น๊ตํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค.
์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ง๋ง, ์ค๋์ ๋๋ก์๋ ์ด๊ฒ ์ต์ ์ด์๋ค๋ ์๊ฐ๋ ๋ค์๋ค.
๋ด๊ฐ ์๊ฐํ๊ธฐ์ ์ด ๋ฌธ์ ์ ํฌ์ธํธ๋
1) ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋ฐ๋ผ์ ๊ตฌํํ๋ ๋ฅ๋ ฅ
์ด์๋ ๊ฒ ๊ฐ๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [programmers] [3์ฐจ] n์ง์ ๊ฒ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.08 |
|---|---|
| [programmers] ๊ดํธ ํ์ ํ๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2 (0) | 2021.09.07 |
| [programmers] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.04 |
| [programmers] ํํ -2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ (1) | 2021.09.04 |
| [programmers] ์ด์ค์ฐ์ ์์ํ (0) | 2021.08.25 |