백준 알고리즘 10799. 쇠막대기

2024. 3. 8. 22:05코딩 테스트/백준

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

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

전체 코드

def solution(s: str):
    count = 0
    stack = []
    i = 0
    while i < len(s):
        # 레이저 인경우
        if (i + 1) <= len(s) - 1 and s[i] == '(' and s[i + 1] == ')':
            if stack:
                count += len(stack)
            i += 2
        # 일반 stick
        else:
            if s[i] == '(':
                stack.append('(')
            elif s[i] == ')':
                stack.pop()
                count += 1
            i += 1

    return count


s = input()
print(solution(s)