접근

VPS가 될 수 있는 조건만 잘 생각한다면 아주 쉽게 풀 수 있는 문제이다.

VPS가 될 수 있는 조건은 다음과 같다.

  1. 문자열에서 '(' 문자와 ')' 문자의 개수가 같아야 한다.
  2. 문자열을 앞에서 부터 탐색할 때 ')'의 개수가 '(' 개수보다 많아지는 순간이 있으면 안된다. (예. '(())))(((())' 는 '(' 과 ')' 문자 개수가 같지만 VPS가 아니다.

코드

import sys

n = int(sys.stdin.readline())
for i in range(n):
    m = list(map(str, sys.stdin.readline().rstrip()))
    vps = 0
    for j in range(len(m)):
        if vps < 0:
            break
        if m[j] == '(':
            vps += 1
        else:
            vps -= 1
    if vps == 0:
        print('YES')
    else:
        print('NO')

더 생각해 볼 것?

...

코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기