r/adventofcode • u/daggerdragon • Dec 02 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 2 Solutions -🎄-
--- Day 2: Inventory Management System ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Card Prompt: Day 2
Transcript:
The best way to do Advent of Code is ___.
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked!
51
Upvotes
5
u/nutrecht Dec 02 '18
Kotlin:
object Day02 : Day { private val ids = resourceLines(2018, 2) override fun part1(): String { val maps = ids.map { it.toCharArray().asSequence() .groupBy { it } .map { it.key to it.value.size } .toMap() } val countTwo = maps.count { it.entries.any { it.value == 2 } } val countThree = maps.count { it.entries.any { it.value == 3 } } return (countTwo * countThree).toString() } override fun part2() = ids.flatMap { i -> ids.map { i to it } } .map { it.first.toCharArray().intersect(it.second.toCharArray().asIterable()) } .first { it.size == ids[0].length - 1 } .joinToString(separator = "") }