• + 0 comments

    Python3 Solution:

    def formingMagicSquare(s):
        magicCombination = [
            [2, 7, 6, 9, 5, 1, 4, 3, 8],
            [2, 9, 4, 7, 5, 3, 6, 1, 8],
            [4, 3, 8, 9, 5, 1, 2, 7, 6],
            [4, 9, 2, 3, 5, 7, 8, 1, 6],
            [6, 1, 8, 7, 5, 3, 2, 9, 4],
            [6, 7, 2, 1, 5, 9, 8, 3, 4],
            [8, 1, 6, 3, 5, 7, 4, 9, 2],
            [8, 3, 4, 1, 5, 9, 6, 7, 2]
        ]
        
        res = float("inf")
        
        for magic in magicCombination:
            currRes = 0
            pointer = 0
            for i in range(3):
                for j in range(3):
                    val = s[i][j]
                    currRes += abs(val - magic[pointer])
                    pointer += 1
                
            if currRes < res:
                res = currRes
        
        return res