세상을 더 좋게

[백준] 10799 '쇠막대기' 파이썬(python) 본문

카테고리 없음

[백준] 10799 '쇠막대기' 파이썬(python)

나는SOU 2021. 11. 2. 00:00

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

 

10799번: 쇠막대기

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

www.acmicpc.net

bar_razor = list(input())
answer = 0
stack = []

for i in range(len(bar_razor)) :
    if bar_razor[i] == '(' :
        stack.append('(')
    
    else : 
        if bar_razor[i-1] == '(' :
            stack.pop()
            answer += len(stack) #괄호의 갯수가 막대기의 갯수가 되더라
        
        else :
            stack.pop()
            answer += 1 #끄트머리 막대기 갯수 추가
            
print(answer)

스택을 활용하는 문제같다. 

 

'('이 나오면 스택에 넣고 하는 식으로 문제가 진행된다.