[python] 백준 10799번

hyeo71·2023년 5월 24일
0

백준

목록 보기
8/24

https://www.acmicpc.net/problem/10799

문제

소스코드

import sys
from collections import deque

stack = deque()
bar = 0
razer = True

for s in sys.stdin.readline().rstrip():
    if s == "(":
        stack.append(s)
        razer = True
    else:
        stack.pop()
        if razer:
            bar += len(stack)
            razer = False
        else:
            bar += 1

print(bar)

풀이

'(' : 스택에 저장, 레이저일 가능성을 고려하여 razer=True
')'는 공통적으로 스택에서 제거한다.
')'가 레이저라면 조각난 쇠막대기를 저장, 다음 데이터가 레이저일 가능성이 없으므로 razer=False
')'가 쇠막대기라면 끝난 쇠막대기의 개수 1을 저장한다.

0개의 댓글