První část už byla trochu známá (viz podobná úloha s kuličkami v kruhu), ale druhá část byla opět zapeklitá z pohledu performance. Už jsem to chtěl pomalu vzdát, ale ještě jsem zkusil své řešení přeimplementovat kompletně bez použití Listu a zde jsem se již správné odpovědi dočkal!
-
Advent of Code v Kotlinu (Den 13.)
Dnes se mi povedla pouze část A. I přestože mi část B fungovala pro jejich příklad správně, konečný výsledek z nějakého důvodu správný nebyl – netuším proč, ale screw it 🙂 .
EDIT: Po poradě na Kotlin Slacku jsme přišli na to, že rozbourané vozíky musím odstranit ihned po kolizi ještě v rámci daného “ticku”. Řešení níže je nyní již opraveno.
-
Advent of Code v Kotlinu (Den 2.)
Doháním deficit a zde je řešení pro den 2.
A:
fun hasSameLettersCount(id: String, occurrences: Int): Boolean { val sameLetterCounts = id.groupBy { it } .values .map { it.count() } return occurrences in sameLetterCounts } fun main() { val ids = File("input2.txt").readLines() val twoCounts = ids.filter { hasSameLettersCount(it, 2) }.count() val threeCounts = ids.filter { hasSameLettersCount(it, 3) }.count() println(twoCounts * threeCounts) }B:
fun main() { val ids = File("input2.txt").readLines().toSet() for (idA in ids) { for (idB in ids) { val diff = getDiff(idA, idB) if (diff.length == idA.length - 1) { println(diff) return } } } } fun getDiff(first: String, second: String) = first.zip(second) { a, b -> if (a == b) a.toString() else "" }.joinToString("") -
Kurzy swingu pro začátečníky u Frýdku-Místku
Tak nám to od září 2018 opět vypukne :-). Přihlašovací formulář je zde.
-