Coding Test

[백준] 9012.괄호

동만쓰 2022. 4. 5. 02:02

처음엔 합차방식을 사용해서 푸는걸로 생각했습니다.

a = int(input())
for i in range(a):
    b = input()
    s = list(b)
    sum = 0
    for i in s:
        if i == '(':
            sum += 1
        elif i == ')':
            sum -= 1
        if sum < 0:
            print('NO')
            break
    if sum > 0:
        print('NO')
    elif sum == 0:
        print('YES')

 

답은 맞지만 정석적인 방법은 스택을 사용하는거네요.

num = int(input())

for i in range(num):
  input_data = input()
  bracket = []

  for j in input_data:
    if j == "(":
      bracket.append(j)
    elif j == ")":
      if len(bracket) != 0 and bracket[-1] == "(":
        bracket.pop()
      else:
        bracket.append(")")
        break

  if len(bracket) == 0:
    print("YES")
  else:
    print("NO")