황소개발자

백준 10799 파이썬 python : 쇠막대기 @@황소처럼 우직하게@@ 구현 아이디어 한마디 본문

백준 문제 풀이

백준 10799 파이썬 python : 쇠막대기 @@황소처럼 우직하게@@ 구현 아이디어 한마디

hjp845 2020. 4. 25. 16:34
반응형

( 괄호가 레이저를 만난 개수를 세면 되는데,

그리고 ) 와 만나 괄호가 닫힐 때, 지금까지 만난 (레이저 개수 + 1) 을 ans 에 더하면되고,

지금 까지 만난 괄호의 개수를 더 밑에 있는 막대기에게 알려주고 떠나가면 된다.

ps = input().strip()

ans = 0
stack = [0]
for i in range(1, len(ps)):
    if ps[i] == '(':
        stack.append(0)
    elif ps[i] == ')':
        if stack[-1] == 0:
            if len(stack) >= 2:
                stack[-2] += 1
            stack.pop()
        elif stack[-1] != 0:
            if len(stack) >= 2:
                stack[-2] += stack[-1]
            ans += stack[-1] + 1
            stack.pop()
print(ans)
반응형
Comments