Rozhodl jsem se, že si letošní Vánoční čas zpříjemním řešením programátorských hádanek, které pro nás letos připravili na stránkách Advent of Code 2018 … jak jinak, než v Kotlinu 🙂 . Pokud se chcete pochlubit vaším kódem – ať už v jakémkoliv jazyce – nebojte se napsat do komentářů 🙂 .
Mé řešení pro část první:
fun main() {
val result = File("input1.txt").readLines().sumBy { it.toInt() }
println(result)
}
a část druhou:
fun main() {
val frequencies = sequence {
val deltas = File("input1.txt").readLines().map { it.toInt() }
var lastFreq = 0
while (true) {
deltas.forEach {
lastFreq += it
yield(lastFreq)
}
}
}
val seen = mutableSetOf<Int>()
for (freq in frequencies) {
if (freq in seen) {
println(freq)
break
}
seen += freq
}
}