백준 풀이

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

반오십 코린이 2022. 11. 22. 02:13
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