for문으로 li
리스트 원소를 하나씩 꺼내며 문자열 중 왼쪽 괄호, 오른쪽 괄호 모양에 따라 +1, -1을 T
만큼 반복해서 cnt
에 누적하고, cnt
가 0이 아니라면 '올바른 괄호 문자열(Valid PS, VPS)'이라고 판단하면 된다.
import sys
T = int(sys.stdin.readline())
for i in range(T):
PS = sys.stdin.readline().strip()
li = list(str(PS))
cnt = 0
for j in li:
if j == '(':
cnt += 1
elif j == ')':
cnt -= 1
if cnt < 0:
break
if cnt != 0:
print('NO')
elif cnt == 0:
print('YES')
PyPy로 제출하면 CPython 대비 메모리와 시간이 꽤 차이나서 그 이유를 공부해야겠다.