티스토리 뷰

728x90

www.acmicpc.net/problem/10799

 

10799번: 쇠막대기

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

www.acmicpc.net

알고리즘 및 소스코드

1. '(' 가 나오면 스택에 추가

2. '()' 가 나오면 결과 값에 스택 길이 더하기

3. ')' 가 나오면 결과 값에 1 더하고 pop 한 번 해주기

arr = input()

stack = []
result = 0
for i in range(len(arr)):
    if arr[i] == '(':
        stack.append(arr[i])
    else:
        if arr[i-1] == '(':
            stack.pop()
            result += len(stack)
        else:
            stack.pop()
            result += 1
print(result)
반응형