[백준] 9012번 괄호 . python

sun1·2023년 3월 14일
0

백준

목록 보기
6/16
post-thumbnail

문제

' 9012번 괄호 '
https://www.acmicpc.net/problem/9012

풀이

조건

  • 괄호 문자열은 ‘(’ 와 ‘)’ 만으로 구성되어 있다.
  • “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “)()” 는 모두 VPS 가 아니다.
  • 입력 괄호 문자열이 올바른 괄호 문자열(VPS)이면 “YES”, 아니면 “NO”를 한 줄에 하나씩 차례대로 출력한다.

Check point

  • 스택이란?
 데이터의 삽익과 삭제가 데이터의 가장 한쪽 끝에서만 일어나는 자료구조
  • 스택의 특징
후입선출(Last In, First Out) : 가장 마지막으로 추가된 항목을 가장 첫번째로 제거한다.
  • push : 데이터 삽입
  • pop : 데이터 삭제 -> pop() : 가장 마지막 데이터 삭제
  • top : 가장 마지막에 삽입한 데이터를 삭제하지 않고 return
  • isEmpty : 스택이 비어있는지 여부 확인

코드

Python

def func(lst):
    stack=[]
    for l in lst:
        if l == '(':
            stack.append(l)
        else:
            if len(stack) == 0:
                print('NO')
                return
            else:
                stack.pop()
    if len(stack) !=0:
        print('NO')
    else:
        print('YES')

N=int(input())
for _ in range(N):
    func(input())

0개의 댓글