Stel dat je een 2D rechthoekig rooster hebt, sommige cellen bevatten een ‘appel’ a
, anderen zijn leeg " "
. De grond wordt voorgesteld via een #
, er is altijd een laag grond onderaan in het rooster.
Implementeer een simulatie van de zwaartekracht, zodat alle appels recht naar beneden vallen, mogelijks op elkaar gestapeld.
Schrijf een functie appels(rooster)
die gegeven een ingevuld rooster
de uiteindelijke situatie bepaalt.
Bestudeer grondig onderstaande voorbeelden.
>>> appels([[" ", " ", " ", "a", "a"],
["a", " ", "a", " ", " "],
["a", " ", "a", "a", " "],
[" ", " ", "a", " ", " "],
[" ", " ", " ", "a", "#"],
[" ", "#", "#", " ", "#"],
["#", "#", "#", "#", "#"]])
[[" ", " ", " ", " ", " "],
[" ", " ", " ", " ", " "],
[" ", " ", "a", " ", " "],
[" ", " ", "a", "a", "a"],
["a", " ", "a", "a", "#"],
["a", "#", "#", "a", "#"],
["#", "#", "#", "#", "#"]]
Bron
Gebaseerd op probleem Falling apples, ICPC Mid-Central Regional (2016).