Day 2
This commit is contained in:
3
pom.xml
3
pom.xml
@@ -46,6 +46,9 @@
|
|||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-maven-plugin</artifactId>
|
<artifactId>kotlin-maven-plugin</artifactId>
|
||||||
<version>${kotlin.version}</version>
|
<version>${kotlin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<jvmTarget>1.8</jvmTarget>
|
||||||
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>compile</id>
|
<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