마방진 문제

def formingMagicSquare(s):
    # Write your code here
    s = [s[i][j] for i in range(3) for j in range(3)]
    mmatrix = []
    # 참고함
    for a in range(1, 10):
        for b in range(1, 10):
        	# 각 행, 열, 대각선의 합이 15가 되는 모든 경우의 수
            if set([a, 15-a-b, b, 5+b-a, 5, 5+a-b, 10-b, a+b-5, 10-a]) == set(range(1, 10)):
                mmatrix.append([a, 15-a-b, b,
                                      5+b-a, 5, 5+a-b,
                                      10-b, a+b-5, 10-a])
    result = sys.maxsize
    for m in mmatrix:
        cost = 0
        for i in range(9):
            cost += abs(m[i] - s[i])
        result = min(result, cost)
        
    return result