코테준비/문제풀이
[Python] 프로그래머스 쇠막대기
jaeni
2020. 7. 12. 15:47
반응형
def solution(arng):
bar = 0
stack = []
arng = arng.replace("()","L")
for i in arng:
if i == '(':
stack.append('(')
bar += 1 #이거 안하면 안됨 중요.
elif i == ')':
stack.pop()
else:
bar += len(stack)
return bar
고민 했던 건 스택을 넣고 뺄때 레이저랑 막대랑 구분하는 법.
arng = arng.replace("()","L")
replace를 통해 아예 레이저를 구분하고 시작한다.
그런 다음 For문을 돌리면서, "("만 넣어주고 아니면 stack에서 pop한다.
그리고 Laser를 만날경우 현재 stack 내에 있는 막대 수만큼 더 해준다
첨에 replace를 안하면 if와 else가 정말 많아지기때문에
처음부터 바꿔주고 시작하는게 좋음
programmers.co.kr/learn/courses/30/lessons/42585
코딩테스트 연습 - 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레�
programmers.co.kr
반응형