본문 바로가기

개발/algorithm

[백준 9012번] 괄호 - python

문제 링크

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

풀이 

괄호 문자열에 대해서 반복하여

result 라는 변수에 (가 들어왔을 때 +1,  )가 들어왔을 땐 -1 을 해주었다.

result가 음수가 되었다는 건 (와 짝을 이루지 않는 )가 들어왔다는 것이므로 NO 출력 

 

문자열을 다 검사하였을 때 result가 양수라는 것은 (괄호가 남아있다는 것이므로 NO 출력 

result 가 0이면 짝이 맞으면서 올바른 괄호 문자열이므로 YES 출력 

test = int(input())

for _ in range(test):
  s = input()
  result = 0

  for i in s:
    if i == '(':
      result += 1 
    else :
      result -= 1
    
    if result < 0 :
      print('NO')
      break 
    
  if result > 0 :
    print('NO')
  elif result == 0 :
    print('YES')