JaeniWorld
[Python] 프로그래머스 쇠막대기 본문
반응형
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
반응형
'코테준비 > 문제풀이' 카테고리의 다른 글
[Python] Boj 백준 10989 수 정렬하기 3 (0) | 2022.06.08 |
---|---|
[Python] Boj 백준 2751 수 정렬하기 2 (0) | 2022.05.13 |
[Python] 프로그래머스 구명보트 (0) | 2020.07.12 |
[Python3] 프로그래머스 크레인 인형뽑기 게임 (0) | 2020.07.11 |
[SQL] 프로그래머스 7daySQL챌린지 day1~day4 (0) | 2020.07.11 |
Comments