• + 0 comments
    function formingMagicSquare(s) {
        const magicSquares = [
            [8, 1, 6, 3, 5, 7, 4, 9, 2],
            [6, 1, 8, 7, 5, 3, 2, 9, 4],
            [4, 9, 2, 3, 5, 7, 8, 1, 6],
            [2, 9, 4, 7, 5, 3, 6, 1, 8],
            [8, 3, 4, 1, 5, 9, 6, 7, 2],
            [4, 3, 8, 9, 5, 1, 2, 7, 6],
            [6, 7, 2, 1, 5, 9, 8, 3, 4],
            [2, 7, 6, 9, 5, 1, 4, 3, 8],
        ];
    
        let minCost = Infinity;
    
        s = s.flat();
    
        for (let ms of magicSquares) {
            let sum = 0;
    
            for (let i = 0; i < 9; i++) {
                sum += Math.abs(ms[i] - s[i]);
            }
            minCost = Math.min(sum, minCost);
        }
    
        return minCost;
    }