[Programmers] ์ ๋ง๋๊ธฐ
Updated:
์ ๋ง๋๊ธฐ
์ ๋ง๋๊ธฐ ๋ฅผ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ์ด๋ํ๋ค.
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐ ํด ๋ดค๋๋ฐ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๊ฐ์ ๋ง๋๊ธฐ ์ฌ์ด์ ๋ ์ด์ ๊ฐ์๋ฅผ ๊ตฌํด ์กฐ๊ฐ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ,
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ ์ด์ ๊ฐ ๋์ฌ ๋ ๋ง๋ค ๊ทธ ๋ ์ด์ ์์ ์๋ ๋ง๋๊ธฐ ๊ฐ์๋ฅผ ๊ตฌํด ์กฐ๊ฐ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์๋ฌด๋ฆฌ ์๊ฐํด๋ ๊ท์น์ด ๋ฐ๊ฒฌ์ด ์๋์๋ค !!!
๊ทธ๋์ ์ฐ์ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋ดค๋ค.
def solution(arr):
answer = 0
arr = arr.replace('()', 'L')
stick = list()
for val in arr:
if val == '(':
stick.append(0)
elif val == ')':
input = stick.pop() + 1
answer += input
elif val == 'L':
for idx, cnt in enumerate(stick):
stick[idx] = cnt + 1
answer += input
return answer
() ๋ฅผ ๋ ์ด์ ๋ก ๋ฐ๊ฟ ์ค ๋ค, ๋ ์ด์ ๊ฐ ๋์ฌ ๋ ๋ง๋ค stick ์ ์กด์ฌํ๋ ๋ชจ๋ ์คํฑ์ cnt ๋ฅผ ๋๋ ค ์ฃผ์๋ค.
๊ฒฐ๊ณผ๋ 20๊ฐ์ ํ ์คํธ์ผ์ด์ค ์ค ํ ๊ฐ๊ฐ ์๊ฐ์ด๊ณผ์๋ค..
๋ง๋๊ฐ ๋ง์ด ๊ฒน์ณ์๊ณ ๊ทธ ์์ ๋ ์ด์ ๊ฐ ๊ณ์ ์๋ ๊ฒฝ์ฐ ์ฒซ ๋ง๋๊ธฐ๋ถํฐ ๊ณ์ ๊ฐ์ ์ฌ๋ ค์ค์ผ ํด ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ๋ค.
์ ์ฝ๋์์ ๋ ์ด์ ์๊ฐ์ ์ค์ผ ๋ฐฉ๋ฒ์ ์๋ค๊ณ ์๊ฐ์ด ๋ค์ด ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๊พธ๊ธฐ๋ก ํ๋ค..
์๊ฐ๋ณด๋ค ๊ท์น์ด ์์ฃผ์์ฃผ ๊ฐ๋จํ๋๋ฐ ์๊ฐํ๋๋ฐ ๊น์ง ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค !!
๋ ์ด์ ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ ์ด๋ฆผ ๊ดํธ ๊ฐ์๋ฅผ ๋ํ๊ณ , ๋ซํ ๊ดํธ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ 1 ์ ๋ํด์ฃผ๋ฉด ๋ !!
def solution(arr):
arr = arr.replace('()', 'L')
answer = 0
open = list()
for val in arr:
if val == '(':
open.append(val)
elif val == ')':
answer += 1
open.pop()
elif val == 'L':
answer += len(open)
return answer
๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณธ๋ค๋ฉด ๋ฐ๋ก ์ดํด๊ฐ ๊ฐ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ๋ ๋ค๋ฅธ์ฌ๋ํ์ด ์ค ์ ๋ง ์ ํ์๋ค๊ณ ์๊ฐ์ด ๋๋ ์ฝ๋๊ฐ ์์๋ค !!
def solution(arrangement):
answer = 0
sticks = 0
rasor_to_zero = arrangement.replace('()','0')
for i in rasor_to_zero:
if i == '(':
sticks += 1
elif i =='0' :
answer += sticks
else :
sticks -= 1
answer += 1
return answer
#---------------------------------------------------------#
def solution(arrangement):
answer = 0
stack = 0
laseron = False
for p in arrangement:
if p == '(':
laseron = True
stack += 1
else:
if laseron==True:
answer += stack-1
laseron=False
else:
answer += 1
stack -= 1
return answer
์ด ๋ ๊ฐ์ง ์ธ๋ฐ, ์ฒซ ๋ฒ์งธ ์ฝ๋๋ ๋์ ํ์ด๋ฐฉ์์ ๊ฐ์๋ฐ ์คํ์์ด ์ซ์๋ก๋ง ํ์๋ค.
append, pop ์ +, - ๋ก ํ๋๋ฐ ๊น๋..
๋ ๋ฒ์งธ๋ replace ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํผ ๋ฐฉ์์ด๋ค.
โ(โ ๊ฐ ์ค๋ฉด ๋ ์ด์ ๋ฅผ ์ผ๊ณ โ)โ ๊ฐ ์์๋ ๋ ์ด์ ๊ฐ ์ผ์ ธ์์ผ๋ฉด ๋ ์ด์ , ๊บผ์ ธ์์ผ๋ฉด ๋ง๋๊ธฐ์ ๋์ด๋ค.
Leave a comment