[baekjoon] 10799 쇠막대기 실버5

윤주원·2024년 11월 26일
0

baekjoon

목록 보기
5/13
post-thumbnail

문제

설명

  • 스택을 활용하면 쉽게 해결할 수 있다.

  • 참고 이미지

코드

import sys

n =list(sys.stdin.readline().strip())
cnt = 0
arr = []
for i in range(len(n)):
    if n[i] == ')':
        if n[i-1] =='(':
            arr.pop()
            cnt += len(arr)
        else:
            arr.pop()
            cnt+=1
    elif n[i] == '(':
        arr.append('(')

print(cnt)
  1. list형태로 입력을 받기
  2. 처음 if문 : 배열의 원소가 ) 일 때 2가지로 나뉨.
    2-1. 이전 원소가 ) 라면 pop() 후 쇠막대기 개수만큼 더하기
    2-2. ) 라면 pop() 후 1만 더하기
  3. 두번째 if문 : 원소가 ( 일 때
  • 스택에 추가

깨달은점

  • 아직 스택을 활용한 괄호 문제가 어색한거 같다.
  • 굳이 모든 요소를 스택에 넣지 않고 닫힌 괄호가 있다면 스택의 -1을 뺀다는 생각을 더 인지할 필요가 있다.
profile
안녕하세요

0개의 댓글