[백준] 10799 쇠막대기

cheeeese·2022년 4월 25일
0

코딩테스트 연습

목록 보기
87/151
post-thumbnail

📖 문제

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

💻 내 코드

bar=list(input())

res=0
stack=[]

for i in range(len(bar)):
    if bar[i]=='(':
        stack.append('(')
    elif bar[i]==')':
        if bar[i-1]=='(':
            stack.pop()
            res+=len(stack)
        else:
            stack.pop()
            res+=1

print(res)

💡 풀이

  • (가 나오면 stack에 쌓음
  • )가 나오면
    • 직전 값이 ( 라면

      • 레이저이기 때문에 stack의 마지막 값 pop
      • stack의 길이만큼 정답에 더함 (포개어진 쇠막대기의 개수)
    • 직전 값이 )라면

      • 쇠막대기가 끝나는 것이기 때문에 pop한 뒤 정답에 1 더함

0개의 댓글