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
    }
}