Start of magic square
parent
47b3230d69
commit
6ca4b02c67
|
@ -0,0 +1,37 @@
|
||||||
|
-- https://www.hackerrank.com/challenges/magic-square-forming/problem
|
||||||
|
|
||||||
|
module Main where
|
||||||
|
import Data.List (transpose)
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = print "test"
|
||||||
|
|
||||||
|
s :: [[Integer]]
|
||||||
|
s =
|
||||||
|
[ [5, 3, 4]
|
||||||
|
, [1, 5, 8]
|
||||||
|
, [6, 4, 2]
|
||||||
|
]
|
||||||
|
|
||||||
|
-- isMagicSquare n s =
|
||||||
|
-- all (sum rows == n) &&
|
||||||
|
-- all (sum cols == n) &&
|
||||||
|
-- all (sum diag == n)
|
||||||
|
-- where
|
||||||
|
-- rows =
|
||||||
|
|
||||||
|
get s (x,y) = s !! x !! y
|
||||||
|
|
||||||
|
allCoords n = [ (x,y) | x <- [0..n-1], y <- [0..n-1] ]
|
||||||
|
|
||||||
|
diagCoords n = [ (x,y) | x <- [0..n-1], y <- [0 ..n-1], x == y ] ++
|
||||||
|
[ (x,y) | x <- [0..n-1], y <- [n-1, n-2.. 0], x + y == n-1 ]
|
||||||
|
|
||||||
|
rowSums :: [[Integer]] -> [Integer]
|
||||||
|
rowSums = map sum
|
||||||
|
|
||||||
|
colSums :: [[Integer]] -> [Integer]
|
||||||
|
colSums = map sum . transpose
|
||||||
|
|
||||||
|
diagSums :: [[Integer]] -> [Integer]
|
||||||
|
diagSums n = map (\(x,y) -> get n (x,y)) (diagCoords 3)
|
Loading…
Reference in New Issue