fork download
  1. N = int(input())
  2.  
  3. vps = []
  4. for i in range(0,N):
  5.  
  6. v = input()
  7. vps.append(v)
  8.  
  9.  
  10.  
  11.  
  12.  
  13. for i in range(0,N):
  14.  
  15. if vps[i][0] == ")": # 문자열의 맨 처음 시작이 ")"이면 No를 출력
  16. print("NO")
  17.  
  18. else: # 문자열의 맨 처음 시작이 "("이면
  19. vvps = [] # "("을 담을 리스트 생성
  20. vvps.append("(") # 맨 처음인덱스에 "("를 추가
  21. for j in range(1,len(vps[i])):
  22. if vps[i][j] == "(": # 이후 인덱스가 "("이면
  23. vvps.append("(")
  24.  
  25. elif vps[i][j] == ")": # 이후 인덱스가 ")" 이면
  26. if len(vvps) != 0: # 이 때 vvps에 "("가 하나 이상 존재하면
  27. vvps.pop(-1) # vvps의 -1번째 즉 맨 끝에 존재하는 "("를 pop
  28.  
  29. else: # vvps 가 빈 리스트가 되었는데 ")"가 남은 경우
  30. vvps.append(")")
  31.  
  32. if len(vvps) == 0: # vvps 내에 "("가 아무것도 남지 않은경우
  33. print("YES")
  34. else: # vvps 내에 "(" 가 하나 이상 남아있는 경우
  35. print("NO")
  36.  
  37.  
  38.  
Success #stdin #stdout 0.02s 9436KB
stdin
1
()))
stdout
YES