최대 1 분 소요

parenthesis = input()
 
answer = 0
stack = []
for i in range(len(parenthesis)) :
    if (parenthesis[i] == '(') :
        stack.append('(')
	else :
        if (parenthesis[i - 1] == '(') :
			stack.pop()
            answer += len(stack)
		else :
            stack.pop()
            answer += 1
            
print(answer)
  • 괄호 “(“가 나오는 경우
    • stack에 “(“를 추가한다..
  • 괄호 “)”가 나오는 경우
    • ”)” 앞에 “(“가 있으면 레이저이다.
      • 레이저인 경우, 앞에 stack에 포함된 (의 개수만큼 막대기가 생긴다.
    • ”)” 앞에 “)”가 있으면 쇠막대기의 끝부분이므로 막대기가 하나 더 생긴다.

댓글남기기