algorithm
알고리즘 기초 1/2 201-자료구조(연습): 쇠막대기
park혀니
2025. 4. 16. 16:34
쇠막대기(python 10799)
문제 해석에 많은 시간이 걸렸다.
레이저가 나올 때, 그동안 여는 괄호가 나온 만큼 스택에 추가된다는 것을 알면 쉬운 문제였음
스택에 '('를 쌓아두고 레이저를 만나면 스택의 길이만큼 값을 저장해주고, ')'가 나오면 짤린 쇠막대가 1개 추가되어 값을 1더해줌
import sys
s = sys.stdin.readline()
s = s.replace('()', 'l')
index = 0
stack = []
result = 0
for i in s:
if i == '(':
stack.append(i)
elif i == 'l' and len(stack) > 0:
result = result + len(stack)
elif i == ')' and len(stack) > 0:
result = result + 1
stack.pop()
print(result)
사실 처음엔 pop을 까먹고 안써서 틀렷다..