def solution(s):
answer = True
#괄호 두 개의 수를 비교
count = {"0":0,"1":0}
#현재 괄호가 어떤 괄호인지
check = 0
# 맨 처음 나온 괄호가 닫는 괄호이면 false 리턴
if s[0] == ")":
return False
arr = list(s)
for i in range(len(arr)):
# 닫는 괄호이면 check는 1이며 count["1"]추가
if arr[i] == ")":
check = 1
count["1"] += 1
# 만약 닫는 괄호의 수가 여는 괄호의 수보다 크면 False
if count["0"] - count["1"] < 0:
return False
else :
#여는 괄호가 나올 때 check는 0으로 count["0"] 증가
check = 0
count["0"] += 1
# 만약 여는 괄호로 문자가 끝나거나 괄호의 수가 짝지어지지 않을 때 False 리턴
if check == 0 or count["0"] != count["1"] :
return False
return True
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12909#