Ik was al bezig met Streams en lazy vals in Scala, dat mocht allemaal niet baten. Nu heb ik het iets slimmer aangepakt. En een truukje gevonden waarmee scala tail recursive functies kan optimizen:
@scala.annotation.tailrec
En toen kreeg ik dit als output:
Bij Case 4 blijft hij nog wel een paar seconden hangen omdat hij daar letterlijk alle mogelijke combinaties afgaat voordat hij de conclusie trekt dat er geen oplossing is. En met 20 gerechten zijn dat er nogal wat. Maar dat kan denk ik niet anders.
Op naar challenge 3.
//edit
Challenge 2 gaat nu binnen 1 seonden met de voorbeeld input. Ik ga hem submitten.
//edit2
En met de 20 cases die ik van Facebook kreeg bij het submitten had hij nu ook totaal geen moeite meer
Wat een opluchting na een uur tegen stackoverflows en out of memory errors aan te kijken.
@scala.annotation.tailrec
En toen kreeg ik dit als output:
werner@werner-desktop:~/Documents/Projects/Facebook hackerscup/challenge2$ scala Main
Case #1: yes
Case #2: no
Case #3: yes
Case #4: no
Case #5: yes

Bij Case 4 blijft hij nog wel een paar seconden hangen omdat hij daar letterlijk alle mogelijke combinaties afgaat voordat hij de conclusie trekt dat er geen oplossing is. En met 20 gerechten zijn dat er nogal wat. Maar dat kan denk ik niet anders.
Op naar challenge 3.
//edit
Challenge 2 gaat nu binnen 1 seonden met de voorbeeld input. Ik ga hem submitten.
//edit2
En met de 20 cases die ik van Facebook kreeg bij het submitten had hij nu ook totaal geen moeite meer
Wat een opluchting na een uur tegen stackoverflows en out of memory errors aan te kijken.
[ Voor 37% gewijzigd door WernerL op 09-01-2015 20:32 ]
Roses are red, violets are blue, unexpected '{' on line 32.