[백준 10799] 쇠막대기

김태민·2026년 4월 13일


최종 코드

value = input()

stack = []
peice = 0


for i in range(len(value)):
  if(value[i] == '('):
    stack.append(value[i])
  elif(value[i] == ')'):
    if(value[i - 1] == '('):
      stack.pop()
      peice += len(stack) 
    else:
      peice += 1
      stack.pop()

print(peice)

문제 파악이 가장 어려웠던 것 같다.
')' 괄호가 레이저인지, 막대의 끝인지 구분하는 것이 중요하다.
레이저일 경우 스택에서 제거해주고,
레이저가 아닐 경우 잘리면서 생기는 peice를 추가하고 스택에서 제거하면 된다.

profile
빠르게 성장하는 개발자

0개의 댓글