알고리즘 & 코딩테스트

[백준] 9012번 괄호

Haksae 2022. 3. 8. 16:31

⛏ 문제 파악

  • 스택(후입선출)을 구현하는 문제
  • 주어진 괄호가 VPS인지 판별하는 문제
  • 약간의 포인트라면 ())( 와 같이 )가 먼저 닫히는 경우 NO 라고 리턴해야하는 것?

👉🏻  답안

from sys import stdin

N = int(stdin.readline())

results = []
for _ in range (N):
  state = 0
  
  PS = list(stdin.readline().strip())
  
  for check in PS:
    if check == "(":
      state += 1
    elif check == ")" and state == 0:
      state += 100
    else:
      state -= 1
      
  if state == 0:
    results.append("YES")
  else:
    results.append("NO")

for result in results:
  print(result)

📑  간단한 설명

  • 특이사항은 없고, 위에서 말한 )가 먼저 닫히는 상황을 생각하여, state가 0이 되면 NO로 가는 코드를 구현했다.