Skip to content

Instantly share code, notes, and snippets.

@Alex-Swann
Last active March 23, 2016 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Alex-Swann/a600159792f6927b7c83 to your computer and use it in GitHub Desktop.
Save Alex-Swann/a600159792f6927b7c83 to your computer and use it in GitHub Desktop.
Sudoku Puzzle Checker
def validSolution(board)
arr = []
board.transpose.map{|x| x.sort}.each{|x| x.each{|i| arr << i}}
arr2 = []
board.map{|x| x.sort}.each{|x| x.each{|i| arr2 << i}}
arr3 = []
board_subgrid = []
r = 0
while r < 9
c = 0
board_subgrid << ( board[(0+c)][(0+r)..(2+r)] | board[(1+c)][(0+r)..(2+r)] | board[(2+c)][(0+r)..(2+r)] )
c += 3
board_subgrid << ( board[(0+c)][(0+r)..(2+r)] | board[(1+c)][(0+r)..(2+r)] | board[(2+c)][(0+r)..(2+r)] )
c += 3
board_subgrid << ( board[(0+c)][(0+r)..(2+r)] | board[(1+c)][(0+r)..(2+r)] | board[(2+c)][(0+r)..(2+r)] )
c += 3
r += 3
end
board_subgrid.map{|x| x.sort}.each{|x| x.each{|i| arr3 << i}}
s = [*1..9].join.to_s * 9
s == arr.join && s == arr2.join && s == arr3.join ? true : false
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment