본문 바로가기
백준 풀이

[백준/BOJ] - 9012번 python 풀이 - stack 개념

by 반오십 코린이 2022. 11. 22.
728x90


Key Point

1. 리스트를 하나 만들어 놓고 '('이 들어오면 해당 리스트에 저장한다.

2. 해당 리스트가 비어있는데 ')'가 들어오면 바로 'NO'

3. 반복문이 종료됐을 때 '('이 존재할 경우 NO

else -> Yes 

 

알게 된 문법

for i in n:

n list에서 list의 원소를 뽑아낸다.


num=int(input())

for _ in range(num):
  result=[]
  count=0
  n=input()
  for i in n:
    if i=="(":
      result.append(i)
    elif i==")": 
      if len(result)==0: # result 비었는데 )가 먼저 들어올 경우
        count=-1
        break
      result.pop() # (가 이미 있을 경우 = len(result) != 0 일 경우
  #)가 먼저 들어와 반복문에서 쫓겨났을 경우 or result에 (만 쌓여있을 경우        
  if count==-1 or len(result)!=0: 
    print("NO")
  else:
    print("YES")

 

728x90