def min_operations(n, s): # 位置iまでの(1の個数 - 0の個数)を計算 balance = 0 balances = [0] # 最初の位置の前の状態として0を入れておく for char in s: if char == '1': balance += 1 else: balance -= 1 balances.append(balance) # 配列内の最小値 min_balance = min(balances) # 最小値が負の場合、その絶対値分だけ0を1に変える必要がある if min_balance < 0: return abs(min_balance) else: return 0