마지막 테스트케이스였던 ())(()를 NO로 판별해내는 게 어려워서 다른 풀이를 참고했다.
)(의 경우 닫히지 않았기 떄문에 어떻게 하면 NO로 풀어낼 수 있을지가 어려웠던 것 같다.
import sys
def sol(word):
first = 0
second = 0
for i in range(len(word)):
if word[i] == "(":
first += 1
elif word[i] == ")":
second += 1
if first == second:
return "YES"
else:
return "NO"
n = int(sys.stdin.readline())
for i in range(n):
word = sys.stdin.readline().strip()
print(sol(word))
import sys
def sol(word):
answer = "NO"
sum = 0
for i in range(len(word)):
if word[i] == "(":
sum += 1
elif word[i] == ")":
sum -= 1
if sum == -1:
return answer
break
if sum == 0:
answer = "YES"
return answer
n = int(sys.stdin.readline())
for i in range(n):
word = sys.stdin.readline().strip()
print(sol(word))