Setup
Loopover puzzles are 2D sliding puzzles that work more like flat rubik's cubes. Instead of having one open slot for pieces to slide into, the entire grid is filled with pieces tha wrap back around when you slide a row or column.
You can try it out at this sketch here: https://www.openprocessing.org/sketch/576328
To complete this challenge, implement a function to return a list of moves that will transform an unsolved grid into a solved one.
Consider the grid:
ABCDE FGHIJ KLMNO PQRST UVWXY
If we make the move R0
(move the 0th row right) then we get:
EABCD FGHIJ KLMNO PQRST UVWXY
Likewise, if we do L0
(move the 0th row left), we get:
ABCDE FGHIJ KLMNO PQRST UVWXY Back to normal.
Say we make the move U2
(move the 2nd column up):
ABHDE FGMIJ KLRNO PQWST UVCXY
D2
(2nd column down) would then return us to the original grid. With all of this in mind, our tests will give you the scrambled grid as input. Please return an array of the moves taken to unscramble the grid.
For example:
SCRAMBLED GRID: DEABC FGHIJ KLMNO PQRST UVWXY SOLVED GRID: ABCDE FGHIJ KLMNO PQRST UVWXY
One possible solution would be ["L0", "L0"]
as moving the top row left twice would result in the original, solved grid. Another would be ["R0", "R0", "R0"]
etc. etc.
Tests
"ACDBE\nFGHIJ\nKLMNO\nPQRST\nUVWXY"
"ABCDE\nKGHIJ\nPLMNO\nFQRST\nUVWXY"
Some of these can be kind of tricky. Good luck!
This challenge comes from jaybruce1998 on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!
Top comments (1)
Cool problem, but fairly unrealistic as an interview question in terms of time expectations for implementation. Could work as a design discussion or homework problem.