Introducción
Estás jugando un juego de combinación, en el que las monedas se insertan en la parte superior y caen al fondo (sobre la moneda superior) debido a la gravedad.
Así que esto
O <- inserting this coin
OO O
OOOOO
se convertirá en esto
O
OO O
OOOOO
Ahora imagine que alguien gira el tablero en el sentido de las agujas del reloj. Lo siguiente sucederá:
1. El tablero gira
OOO
OO
O
OO
O
2. Las monedas caen debido a la gravedad
O
O
OO
OO
OOO
Tu tarea
Su tarea es simular la rotación de la pizarra escribiendo un programa o una función. En aras de la simplicidad, solo estamos tratando con un tipo de moneda (no es un juego de combinación demasiado emocionante, ¿verdad ...?). Puede suponer que la gravedad se aplica solo después de que se completa la rotación. El tablero se gira en sentido horario.
Entrada
La entrada va a ser una cadena, que contiene 3 tipos de caracteres:
- O (capital o) O 0 (cero): una moneda (usted decide cuál es su solución)
- (espacio) - un campo vacío
- \ n (nueva línea) - fin de fila
La entrada representa el estado de la placa. Puede suponer que la entrada está bien formada y contiene un estado válido del tablero (no hay monedas flotantes). La entrada puede ser un parámetro de función, o puede leerse desde la entrada estándar o desde un archivo.
Salida
La salida es el nuevo estado de la placa después de la rotación. La salida contiene los mismos 3 tipos de caracteres que la entrada. La salida se puede devolver desde su función o se puede escribir en la salida estándar o en un archivo.
Muestra
Entrada1:
O
OO O
OOOOO
Salida1:
O
O
OO
OO
OOO
Entrada2:
O O
O O
Salida2:
OO
OO
Puede usar cualquier idioma y la biblioteca estándar del idioma elegido. El programa más corto en bytes gana.