Day 2
This commit is contained in:
3
pom.xml
3
pom.xml
@@ -46,6 +46,9 @@
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<version>${kotlin.version}</version>
|
||||
<configuration>
|
||||
<jvmTarget>1.8</jvmTarget>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compile</id>
|
||||
|
||||
62
src/main/kotlin/com/basdado/adventofcode/Day2.kt
Normal file
62
src/main/kotlin/com/basdado/adventofcode/Day2.kt
Normal file
@@ -0,0 +1,62 @@
|
||||
package com.basdado.adventofcode
|
||||
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.util.stream.Collectors
|
||||
import java.util.stream.Stream
|
||||
|
||||
fun main() {
|
||||
|
||||
puzzle1()
|
||||
puzzle2()
|
||||
}
|
||||
|
||||
fun puzzle1() {
|
||||
println(
|
||||
lines()
|
||||
.flatMap{ line -> line.chars().mapToObj{ Integer.valueOf(it) }
|
||||
// Count how many times each character appears per word
|
||||
.collect(Collectors.groupingBy( { it }, Collectors.counting()))
|
||||
// Filter on characters appearing more than once
|
||||
.filter { it.value > 1L }
|
||||
.map { it.value }
|
||||
.distinct()
|
||||
.stream()
|
||||
}
|
||||
.collect(Collectors.groupingBy({ it }, Collectors.counting()))
|
||||
.map { it.value }
|
||||
.stream()
|
||||
.mapToLong { it }
|
||||
.reduce { left, right -> left * right }
|
||||
.orElse(0L)
|
||||
)
|
||||
}
|
||||
|
||||
fun puzzle2() {
|
||||
|
||||
val ids = lines().collect(Collectors.toList())
|
||||
for (i in 0 until ids.size) {
|
||||
|
||||
val shortIds = ids.stream()
|
||||
.map { it.substring(0, i) + it.substring(i + 1) }
|
||||
.sorted()
|
||||
.collect(Collectors.toList())
|
||||
|
||||
var lastId = ""
|
||||
for (shortId in shortIds) {
|
||||
if (lastId == shortId) {
|
||||
println(shortId)
|
||||
return
|
||||
}
|
||||
lastId = shortId
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun lines(): Stream<String> {
|
||||
// return Stream.of("abcdef", "bababc", "abbcde", "abcdef", "abcccd", "aabcdd", "abcdee", "ababab")
|
||||
return Files.lines(Paths.get(Day2::class.java.getResource("/day/2/input.txt").toURI()))
|
||||
}
|
||||
|
||||
class Day2
|
||||
250
src/main/resources/day/2/input.txt
Normal file
250
src/main/resources/day/2/input.txt
Normal file
@@ -0,0 +1,250 @@
|
||||
jplenqtlagxhivmwmscfukzodp
|
||||
jbrehqtlagxhivmeyscfuvzodp
|
||||
jbreaqtlagxzivmwysofukzodp
|
||||
jxrgnqtlagxhivmwyscfukwodp
|
||||
jbrenqtwagjhivmwysxfukzodp
|
||||
jbrenqplagxhivmwyscfuazoip
|
||||
jbrenqtlagxhivzwyscfldzodp
|
||||
jbrefqtlagxhizmwyfcfukzodp
|
||||
jbrenqtlagxhevmwfsafukzodp
|
||||
jbrunqtlagxrivmsyscfukzodp
|
||||
jbrenqtlaguhivmwyhlfukzodp
|
||||
jbrcnstsagxhivmwyscfukzodp
|
||||
jbrenqtlagozivmwyscbukzodp
|
||||
jbrenqwlagxhivswysrfukzodp
|
||||
jbrenstlagxhuvmiyscfukzodp
|
||||
jbranqtlhgxhivmwysnfukzodp
|
||||
jbrenqtvagxhinmxyscfukzodp
|
||||
jbrenqtlagdhivmwyscfukxody
|
||||
jbrenqtlagelavmwyscfukzodp
|
||||
jbrenqtlagxhtvmwyhcfukzbdp
|
||||
jbrenqwlagxhivmwyscfutzopp
|
||||
jbrenqtlavxhibmtyscfukzodp
|
||||
jbronqtlagxnivmwyscfuzzodp
|
||||
jbredqtlagxhppmwyscfukzodp
|
||||
jbrcnqtlogxhivmwysxfukzodp
|
||||
jbremqtlagehivswyscfukzodp
|
||||
jbrenqolagxhivmcyscfukzokp
|
||||
jbrehqtlacxhgvmwyscfukzodp
|
||||
fbrlnqtlagxhivmwyscbukzodp
|
||||
zbrfnqtlagxhivrwyscfukzodp
|
||||
jbregqtlagxnivmwyscfhkzodp
|
||||
jbrenqtllgxnivmwystfukzodp
|
||||
jurenqtlagxhivmwyscfulzoup
|
||||
jbrenitdagxhivmwyxcfukzodp
|
||||
jbrenqtlagxqivmwyscvuszodp
|
||||
jbqenqwlagxhivmwyscfckzodp
|
||||
jbrenqtlagxhivmwxscqupzodp
|
||||
jbrenqtlagxhivmwysciuqiodp
|
||||
jbrjnjtlagxhivmwyscfukzode
|
||||
jbrenqtlagxhuvmwqscfukzods
|
||||
jbrenqtlagxhuvmuyscfukzudp
|
||||
ibrenqtlagxhivmwyscfuktokp
|
||||
jbsenqtlagxhivcwyscfuksodp
|
||||
jbrfnntlagxhivmwnscfukzodp
|
||||
jzrenqulagxhivmwyscfukzodx
|
||||
jbrenqtqygxhivmwyscfukzwdp
|
||||
jbrenqtlagxfixmwyscfukzcdp
|
||||
jbrenqaoagxhivmwyshfukzodp
|
||||
jbrenqtlazxhivmworcfukzodp
|
||||
jbrenqtlagxhicowyscfukrodp
|
||||
jbrqnqtlagxhivzwyzcfukzodp
|
||||
jbrenqtlalxhuvxwyscfukzodp
|
||||
jbrenqtlqgxhhviwyscfukzodp
|
||||
jbrenqtuggxhivmoyscfukzodp
|
||||
jbrenqtlagxpivmwyscfukkodw
|
||||
zbrenqhlagxhivmwyscdukzodp
|
||||
jbrenutlagxxivmwyscfukzoqp
|
||||
obrenqtlagxhivmwxscfuszodp
|
||||
jbrenqtlagxhlvmwyscfuixodp
|
||||
rbrenqtlagdhixmwyscfukzodp
|
||||
jbrenqtlagxhivmwescfyszodp
|
||||
jbrfnqtlagxhivmwyscaukzhdp
|
||||
jbrenqtiagxhivmbyscfuxzodp
|
||||
cbrrnqtuagxhivmwyscfukzodp
|
||||
jbkenqtlagxhigmwysufukzodp
|
||||
jbjewqtlagxhivmwyscfuqzodp
|
||||
jbrznqtlagxvivmwyscfukzovp
|
||||
jbrenttlacxhivmwyscfhkzodp
|
||||
jblenqtlagxhivmwylcfukaodp
|
||||
jbrenqtlagxhivmqysiftkzodp
|
||||
jbrenqtlagwhikmwyscfukqodp
|
||||
jbrenqtlegxhivmwvsckukzodp
|
||||
jbrenqwzagxhiamwyscfukzodp
|
||||
jbrenqtlagxhivcwyscfgkzodc
|
||||
jbrenqtlagxxhvmwxscfukzodp
|
||||
jbrenqtlngxhivmwyscfukoowp
|
||||
jbreomtlagxhivmwpscfukzodp
|
||||
jfrenqtlagxhivmwyscnumzodp
|
||||
jbrenqtlagphipmwyscfukfodp
|
||||
jvrenqtlagxhivmwyscfmkzodw
|
||||
jbrenqtlaxxoiemwyscfukzodp
|
||||
jbrenqtlagxhivmwyscemkzpdp
|
||||
jbrenyjldgxhivmwyscfukzodp
|
||||
jbrenqtlagxhivfvyspfukzodp
|
||||
kbrenctlakxhivmwyscfukzodp
|
||||
jbrmhqtlagxhivmwyscfuizodp
|
||||
jbjenqtlagxlivmbyscfukzodp
|
||||
jbrenqtlaaxhivmmyshfukzodp
|
||||
jbronqtlagxhirmvyscfukzodp
|
||||
jbcrnqtlagxwivmwyscfukzodp
|
||||
jxrenszlagxhivmwyscfukzodp
|
||||
jbpenqtlagxhivmwyscfukkody
|
||||
jbrewqtlawxhivmwyscfukzhdp
|
||||
jbrenqylagxhivmwlxcfukzodp
|
||||
jbrenqtlagxxivtwywcfukzodp
|
||||
jbrenqtlagxhcvgayscfukzodp
|
||||
jbrenitlagxhivmwiscfukzohp
|
||||
jbrenutlagxhivmwyscbukvodp
|
||||
nbrenqtlagxhivmwysnfujzodp
|
||||
jbrenqtlagxhivmwyqcfupzoop
|
||||
jbrenqtrarxhijmwyscfukzodp
|
||||
jbrenqtlagxhivmwysdfukzovy
|
||||
jbrrnqtlagxhivmwyvcfukzocp
|
||||
jbrenqtlagxhivmwyscfuvzzhp
|
||||
jbhenitlagxhivmwysufukzodp
|
||||
jbrenqtlagxhivmwyscfuwzoqx
|
||||
kbrenqtlagxhivmwysqfdkzodp
|
||||
jbrenqtlagxhivmwyxmfukzodx
|
||||
jbcenatlagxxivmwyscfukzodp
|
||||
jbrenhtlagvhdvmwyscfukzodp
|
||||
jxrenqtlafxhivfwyscfukzodp
|
||||
jbreaztlpgxhivmwyscfukzodp
|
||||
tqrenqtlagxfivmwyscfukzodp
|
||||
jbrenqgllgxhwvmwyscfukzodp
|
||||
jbrejjtlagxhivmgyscfukzodp
|
||||
jbrenqtlagxhivmwyscvukzoqv
|
||||
jbrvnqtlagxsibmwyscfukzodp
|
||||
jbrenqttagxhuvmwyscfukvodp
|
||||
jbrenqteagxhivmwcscfukqodp
|
||||
jbrenqtsabxhivmwyspfukzodp
|
||||
jbbenqtlagxhivmwyscjukztdp
|
||||
jnrenqtlagxhiimwydcfukzodp
|
||||
jbrenqtlagxhfvmwyscxukzodu
|
||||
jbrenqtluyxhiomwyscfukzodp
|
||||
jbrenqvlagxhivmwyscuukzolp
|
||||
ebrenqtlagxnivmwysrfukzodp
|
||||
jbreeqtlatxhigmwyscfukzodp
|
||||
jbrenqtvxgxhivmwyscfukzedp
|
||||
jbrmnqtlagxhivmwywcfuklodp
|
||||
jbreeqtvagxhivmwyscfukzody
|
||||
jbrenptlagxhivmxyscfumzodp
|
||||
jbrenqtlagxhivmwysgfukzfsp
|
||||
jurenqtlagjhivmwkscfukzodp
|
||||
jbrenntlagxhivmwtscffkzodp
|
||||
jbrenqglagxhivmwyocfokzodp
|
||||
wbrenqtlagxhivmwhscfukiodp
|
||||
jbrenqtligxhivmqascfukzodp
|
||||
jbrenqtlagxhivmwxscfukpojp
|
||||
jurenqtlagxhivmmyscfbkzodp
|
||||
jbrenqtmagxhivmwyscfrbzodp
|
||||
jcrenqtlagxhivmwysefukzodm
|
||||
jbrenqtlagxhicmwywcfukzodl
|
||||
jbvanqtlagfhivmwyscfukzodp
|
||||
jbmenqjlagxhivmwyscfdkzodp
|
||||
jbrenqtlagohivvwysctukzodp
|
||||
jbrenqtdagxdivmwyscfckzodp
|
||||
kbrefqtlagxhivmwyscfuazodp
|
||||
jbrwnqtoagxhivmwyswfukzodp
|
||||
jjhenqtlagxhivmwyscfukzorp
|
||||
jbgsnqtlagxhivkwyscfukzodp
|
||||
jbrynqtlagxhivmsyspfukzodp
|
||||
jbrenftlmkxhivmwyscfukzodp
|
||||
nbrenqtxagxhmvmwyscfukzodp
|
||||
jbrunqtlagxhijmwysmfukzodp
|
||||
jbrenqtlagmaivmwyscfukzowp
|
||||
jbrerqtlagxhihmwyscfukzudp
|
||||
jbrenqtlagahivmwysckukzokp
|
||||
kbrenqtlagxhirmwyscfupzodp
|
||||
jbrrnqtlagxhivmwyecfukzodz
|
||||
jbrenqtlavxhivmwyscfusiodp
|
||||
jnrenqtlagxhivmwyhcfukzodw
|
||||
jbretqtlagfhivmwyscfukzrdp
|
||||
jbreoqtnagxhivmwyscfukzopp
|
||||
jbrenbtllgxhivmwsscfukzodp
|
||||
jbrenqtlmgxhivmwyscfuwzedp
|
||||
jbnenqtlagxhivbwyscfukzokp
|
||||
jbrenqslagxhivmvyscfukzndp
|
||||
jbrenqtlagxzivmwuscfukztdp
|
||||
gbrenqtlagxhyvmwyscfukjodp
|
||||
jbrenqteagxhivmwyscfuszedp
|
||||
jbrenqtlaglhivmwysafukkodp
|
||||
jbrenqtlagxhcvmwascfukzogp
|
||||
jbrenqtlagxhsvmkcscfukzodp
|
||||
jbrenqslbgxhivmwyscfufzodp
|
||||
cbrenqtlagxhivkwtscfukzodp
|
||||
jbrenqtltgxhivmzyscfukzodj
|
||||
jbrgnqtlagihivmwyycfukzodp
|
||||
vbrenqauagxhivmwyscfukzodp
|
||||
jbrqnqtlagjhivmwyscfqkzodp
|
||||
jbrenqtlakxhivmwyscfukvobp
|
||||
jcrenqelagxhivmwtscfukzodp
|
||||
jbrrnqtlagxhlvmwyscfukzodw
|
||||
jbrenqtlagxhivmwkscaumzodp
|
||||
jbrenqdlagxhivmiescfukzodp
|
||||
jhrenqtlagxhqvmwyscmukzodp
|
||||
jbrenqtlaghhivmwyscfukkoyp
|
||||
jowenqtlagxyivmwyscfukzodp
|
||||
jbrenitaagxhivmwyscfqkzodp
|
||||
jbrenqtlagxhivmwyscfnkbudp
|
||||
jbyenqtlagxhivmiyscfukzhdp
|
||||
jbrenitlagxhibjwyscfukzodp
|
||||
jbrenqtlavxhjvmwpscfukzodp
|
||||
jbrenqyaagxhivmwyscflkzodp
|
||||
jbrenqylagxhivmwyicfupzodp
|
||||
jbrenqtlagxmevmwylcfukzodp
|
||||
lbrenqtlagxhiqmwyscfikzodp
|
||||
jbrenqtnarxhivmwyscfmkzodp
|
||||
jbrenqtlamxhivmwyscfnkzorp
|
||||
jbbenqtlavxhivmwyscjukztdp
|
||||
jbrenqtlagxhivmwyscfnliodp
|
||||
jbwenetlagxhivmwyscfukzodt
|
||||
jbrenatlagxhivmwysmfujzodp
|
||||
jbrsnstlagxhivmwyscfukgodp
|
||||
jbwvnitlagxhivmwyscfukzodp
|
||||
jbrenqtbagxhkvmwypcfukzodp
|
||||
jbrlnqtlafxhivmwyscfukdodp
|
||||
jbrenztlanxhivmwyscjukzodp
|
||||
jbrepqtlagxhivmwudcfukzodp
|
||||
jbrenqtlagxiivmwdscfskzodp
|
||||
jbrdjqtlagxhivmwyschukzodp
|
||||
jbrenqtoaguhivmwyccfukzodp
|
||||
jdrexqjlagxhivmwyscfukzodp
|
||||
jbrenqtlagxhovmwysckukaodp
|
||||
pbrfnqblagxhivmwyscfukzodp
|
||||
jbrenqtlagxrivgiyscfukzodp
|
||||
jbrelqtgagxhivmryscfukzodp
|
||||
jbrenqtlagxhicmwjscfikzodp
|
||||
jbrenqjlagxhivmwyscfmkjodp
|
||||
jbrenqtlagxpivmwzscgukzodp
|
||||
jbienqzlagxpivmwyscfukzodp
|
||||
jbrenqvlagxhivmwdscfukzodx
|
||||
owrenqtlagxhivmwyicfukzodp
|
||||
gbrenqtlaathivmwyscfukzodp
|
||||
jbgenqtlafxhivmwysqfukzodp
|
||||
jbrenqtlagxhivtwsscfukzokp
|
||||
jbrnnqylanxhivmwyscfukzodp
|
||||
ebrenqolagxhivmcyscfukzodp
|
||||
jbrenqtlarnhivgwyscfukzodp
|
||||
jbmenqtlagxhivmvyscfukzgdp
|
||||
jbrevqtlaglhivmwystfukzodp
|
||||
jbrenqplanthivmwyscfukzodp
|
||||
jbrenqtlagxhivmkyscbukzosp
|
||||
jbrenqtlagxaivmwyscfugzodo
|
||||
jbrenqplagxhnvmwyscfjkzodp
|
||||
jbrenqtlagxhivgwyscfusrodp
|
||||
cbrenqtlagxhivmwysmfukzody
|
||||
jbrenquwaexhivmwyscfukzodp
|
||||
jbredqtlagxhdvmwyscfukzoup
|
||||
jbrxnqtlagxhivmwysczukaodp
|
||||
jbrenqtlafnhivmwyscfuczodp
|
||||
jbbdkqtlagxhivmwyscfukzodp
|
||||
ubrenqtlagxhivkwyucfukzodp
|
||||
ebjenqtlagxhivmwyscfukzodj
|
||||
jbgenqtlugxxivmwyscfukzodp
|
||||
jbrenqtoagxqivmwdscfukzodp
|
||||
bbeenqtlagxhivmwyscfumzodp
|
||||
jbfeeqtlagxhivmwmscfukzodp
|
||||
jbrlnqtlagxhiimwescfukzodp
|
||||
jbrenqtlagwoivmwyscfukhodp
|
||||
jbrenqtlagnhivmwyscfuszovp
|
||||
Reference in New Issue
Block a user