Day 1
This commit is contained in:
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Eclipse
|
||||
.classpath
|
||||
.project
|
||||
.settings/
|
||||
|
||||
# Intellij
|
||||
.idea/
|
||||
*.iml
|
||||
*.iws
|
||||
|
||||
# Mac
|
||||
.DS_Store
|
||||
|
||||
# Maven
|
||||
log/
|
||||
target/
|
||||
69
pom.xml
Normal file
69
pom.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.basdado.adventofcode</groupId>
|
||||
<artifactId>adventofcode2019</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>com.basdado.adventofcode adventofcode2019</name>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<kotlin.version>1.3.10</kotlin.version>
|
||||
<kotlin.code.style>official</kotlin.code.style>
|
||||
<junit.version>4.12</junit.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib</artifactId>
|
||||
<version>${kotlin.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-test-junit</artifactId>
|
||||
<version>${kotlin.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<sourceDirectory>src/main/kotlin</sourceDirectory>
|
||||
<testSourceDirectory>src/test/kotlin</testSourceDirectory>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<version>${kotlin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compile</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>test-compile</id>
|
||||
<phase>test-compile</phase>
|
||||
<goals>
|
||||
<goal>test-compile</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
39
src/main/kotlin/com/basdado/adventofcode/Day1.kt
Normal file
39
src/main/kotlin/com/basdado/adventofcode/Day1.kt
Normal file
@@ -0,0 +1,39 @@
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.util.stream.Collectors
|
||||
|
||||
fun main() {
|
||||
|
||||
puzzle1()
|
||||
puzzle2()
|
||||
}
|
||||
|
||||
fun puzzle1() {
|
||||
println(
|
||||
Files.lines(Paths.get(Day1::class.java.getResource("/day/1/input.txt").toURI()))
|
||||
.mapToLong { it.toLong() }
|
||||
.sum())
|
||||
}
|
||||
|
||||
fun puzzle2() {
|
||||
|
||||
val changes = Files.lines(Paths.get(Day1::class.java.getResource("/day/1/input.txt").toURI()))
|
||||
.map { it.toLong() }
|
||||
.collect(Collectors.toList<Long>())
|
||||
|
||||
val freqs = mutableSetOf(0L)
|
||||
var freq = 0L
|
||||
while(true) {
|
||||
for (change in changes) {
|
||||
|
||||
freq += change
|
||||
if (freqs.contains(freq)) {
|
||||
println(freq)
|
||||
return
|
||||
}
|
||||
freqs.add(freq)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Day1
|
||||
959
src/main/resources/day/1/input.txt
Normal file
959
src/main/resources/day/1/input.txt
Normal file
@@ -0,0 +1,959 @@
|
||||
+12
|
||||
-10
|
||||
-4
|
||||
-8
|
||||
+18
|
||||
-1
|
||||
-13
|
||||
+10
|
||||
-13
|
||||
+5
|
||||
+7
|
||||
+6
|
||||
+14
|
||||
-9
|
||||
-8
|
||||
+7
|
||||
+18
|
||||
-11
|
||||
+13
|
||||
-1
|
||||
+20
|
||||
+11
|
||||
+13
|
||||
-2
|
||||
+3
|
||||
-8
|
||||
-16
|
||||
+4
|
||||
-6
|
||||
-3
|
||||
-9
|
||||
-12
|
||||
+16
|
||||
+17
|
||||
-5
|
||||
-11
|
||||
+2
|
||||
-20
|
||||
-15
|
||||
+5
|
||||
+3
|
||||
+11
|
||||
-13
|
||||
-18
|
||||
-13
|
||||
-6
|
||||
-19
|
||||
+6
|
||||
-15
|
||||
-11
|
||||
+16
|
||||
+1
|
||||
+15
|
||||
+5
|
||||
-18
|
||||
+14
|
||||
-5
|
||||
-15
|
||||
-3
|
||||
+11
|
||||
-17
|
||||
+19
|
||||
+12
|
||||
+5
|
||||
+8
|
||||
-2
|
||||
+10
|
||||
+13
|
||||
+8
|
||||
+19
|
||||
+8
|
||||
+17
|
||||
-6
|
||||
+8
|
||||
+4
|
||||
-9
|
||||
+19
|
||||
+13
|
||||
+11
|
||||
-2
|
||||
+20
|
||||
+3
|
||||
-16
|
||||
-18
|
||||
+3
|
||||
-5
|
||||
-15
|
||||
+18
|
||||
+18
|
||||
+9
|
||||
-18
|
||||
-19
|
||||
+17
|
||||
-16
|
||||
+15
|
||||
-12
|
||||
+2
|
||||
-20
|
||||
+7
|
||||
-3
|
||||
-9
|
||||
+10
|
||||
+4
|
||||
+20
|
||||
-13
|
||||
-17
|
||||
-23
|
||||
+7
|
||||
+18
|
||||
+21
|
||||
+16
|
||||
+17
|
||||
+5
|
||||
-14
|
||||
+19
|
||||
-18
|
||||
-10
|
||||
+7
|
||||
+1
|
||||
-13
|
||||
+16
|
||||
-21
|
||||
+12
|
||||
+19
|
||||
+11
|
||||
-5
|
||||
+14
|
||||
+11
|
||||
-9
|
||||
+19
|
||||
-2
|
||||
-7
|
||||
+3
|
||||
-20
|
||||
+9
|
||||
-16
|
||||
+9
|
||||
+10
|
||||
+17
|
||||
-18
|
||||
-12
|
||||
-11
|
||||
-11
|
||||
+20
|
||||
-18
|
||||
-12
|
||||
-5
|
||||
-7
|
||||
+15
|
||||
+20
|
||||
+18
|
||||
+23
|
||||
+17
|
||||
-7
|
||||
+5
|
||||
-7
|
||||
+8
|
||||
-2
|
||||
-15
|
||||
+5
|
||||
-17
|
||||
+1
|
||||
-5
|
||||
-8
|
||||
+7
|
||||
+15
|
||||
+5
|
||||
+1
|
||||
+15
|
||||
-11
|
||||
-1
|
||||
+17
|
||||
+15
|
||||
+18
|
||||
+7
|
||||
-3
|
||||
-16
|
||||
-7
|
||||
+18
|
||||
-6
|
||||
+17
|
||||
-2
|
||||
+20
|
||||
-2
|
||||
-7
|
||||
-17
|
||||
+20
|
||||
-1
|
||||
+8
|
||||
-16
|
||||
-12
|
||||
-6
|
||||
-3
|
||||
+19
|
||||
+19
|
||||
+18
|
||||
-7
|
||||
+17
|
||||
+5
|
||||
+19
|
||||
-15
|
||||
-13
|
||||
+2
|
||||
+14
|
||||
+2
|
||||
+1
|
||||
+13
|
||||
-7
|
||||
+2
|
||||
-10
|
||||
-10
|
||||
-15
|
||||
+9
|
||||
+9
|
||||
+14
|
||||
+7
|
||||
+4
|
||||
-15
|
||||
-5
|
||||
-17
|
||||
-5
|
||||
-9
|
||||
+13
|
||||
+6
|
||||
+2
|
||||
-15
|
||||
-11
|
||||
+17
|
||||
-19
|
||||
+14
|
||||
-13
|
||||
+3
|
||||
+1
|
||||
-18
|
||||
-15
|
||||
-17
|
||||
-12
|
||||
+13
|
||||
-17
|
||||
+5
|
||||
-9
|
||||
+2
|
||||
+5
|
||||
-8
|
||||
-8
|
||||
-19
|
||||
+11
|
||||
+20
|
||||
+11
|
||||
+16
|
||||
-7
|
||||
+20
|
||||
+3
|
||||
-21
|
||||
-8
|
||||
-11
|
||||
-9
|
||||
+8
|
||||
-15
|
||||
-20
|
||||
-20
|
||||
-17
|
||||
+24
|
||||
+17
|
||||
-12
|
||||
-20
|
||||
-12
|
||||
-3
|
||||
+14
|
||||
-18
|
||||
+13
|
||||
-74
|
||||
-19
|
||||
-13
|
||||
+2
|
||||
+23
|
||||
-13
|
||||
+24
|
||||
-17
|
||||
-5
|
||||
+14
|
||||
-10
|
||||
-2
|
||||
-10
|
||||
-7
|
||||
-6
|
||||
-23
|
||||
-10
|
||||
-3
|
||||
+9
|
||||
-11
|
||||
+8
|
||||
+16
|
||||
-8
|
||||
-28
|
||||
-10
|
||||
+17
|
||||
-9
|
||||
-10
|
||||
-9
|
||||
-8
|
||||
+2
|
||||
+5
|
||||
-19
|
||||
+11
|
||||
-16
|
||||
+8
|
||||
-14
|
||||
-5
|
||||
+8
|
||||
+4
|
||||
-3
|
||||
+8
|
||||
-7
|
||||
+4
|
||||
+1
|
||||
-2
|
||||
-7
|
||||
+15
|
||||
+3
|
||||
+10
|
||||
+4
|
||||
+1
|
||||
-14
|
||||
-18
|
||||
+15
|
||||
-21
|
||||
+3
|
||||
+14
|
||||
-15
|
||||
-13
|
||||
-14
|
||||
-6
|
||||
+15
|
||||
+1
|
||||
+11
|
||||
+26
|
||||
+19
|
||||
-16
|
||||
+5
|
||||
-2
|
||||
-9
|
||||
+12
|
||||
+19
|
||||
-11
|
||||
+23
|
||||
-3
|
||||
+15
|
||||
-13
|
||||
+14
|
||||
-9
|
||||
-26
|
||||
+17
|
||||
+63
|
||||
-4
|
||||
-20
|
||||
-10
|
||||
-39
|
||||
-55
|
||||
-6
|
||||
-15
|
||||
-9
|
||||
-16
|
||||
-17
|
||||
-14
|
||||
-12
|
||||
+21
|
||||
+1
|
||||
-2
|
||||
-16
|
||||
-13
|
||||
-21
|
||||
+26
|
||||
+27
|
||||
+17
|
||||
+6
|
||||
+2
|
||||
-18
|
||||
+1
|
||||
+18
|
||||
+25
|
||||
-3
|
||||
+19
|
||||
-35
|
||||
-26
|
||||
+4
|
||||
-48
|
||||
-3
|
||||
+1
|
||||
+20
|
||||
+8
|
||||
-27
|
||||
-25
|
||||
-8
|
||||
-10
|
||||
-24
|
||||
+3
|
||||
-61
|
||||
+64
|
||||
+17
|
||||
+21
|
||||
+84
|
||||
+49
|
||||
+4
|
||||
-233
|
||||
-2
|
||||
+535
|
||||
+55053
|
||||
-1
|
||||
-12
|
||||
+2
|
||||
-19
|
||||
+13
|
||||
+10
|
||||
+10
|
||||
+15
|
||||
-12
|
||||
+13
|
||||
+15
|
||||
+8
|
||||
-15
|
||||
-13
|
||||
+10
|
||||
-7
|
||||
+3
|
||||
-10
|
||||
+16
|
||||
+12
|
||||
-6
|
||||
+4
|
||||
+3
|
||||
+19
|
||||
+14
|
||||
+2
|
||||
+10
|
||||
+4
|
||||
+16
|
||||
-2
|
||||
-8
|
||||
+18
|
||||
-14
|
||||
-1
|
||||
+4
|
||||
-1
|
||||
+15
|
||||
+10
|
||||
-6
|
||||
+17
|
||||
+17
|
||||
+15
|
||||
+8
|
||||
+15
|
||||
+6
|
||||
+9
|
||||
+19
|
||||
-2
|
||||
+13
|
||||
-19
|
||||
-15
|
||||
-6
|
||||
-15
|
||||
-4
|
||||
-10
|
||||
-1
|
||||
-4
|
||||
-18
|
||||
+15
|
||||
-2
|
||||
+3
|
||||
+13
|
||||
+5
|
||||
+14
|
||||
+15
|
||||
-19
|
||||
+7
|
||||
+13
|
||||
-14
|
||||
-11
|
||||
+10
|
||||
+8
|
||||
+13
|
||||
-16
|
||||
+5
|
||||
-13
|
||||
-16
|
||||
+10
|
||||
-5
|
||||
-9
|
||||
-1
|
||||
+2
|
||||
+15
|
||||
-4
|
||||
-19
|
||||
-7
|
||||
+19
|
||||
+12
|
||||
+24
|
||||
+10
|
||||
+10
|
||||
+18
|
||||
+15
|
||||
+12
|
||||
-5
|
||||
-11
|
||||
+5
|
||||
+10
|
||||
-12
|
||||
-7
|
||||
-14
|
||||
+12
|
||||
-17
|
||||
-13
|
||||
-20
|
||||
+14
|
||||
-13
|
||||
+11
|
||||
-16
|
||||
+15
|
||||
+15
|
||||
+18
|
||||
-8
|
||||
+10
|
||||
+17
|
||||
+1
|
||||
-10
|
||||
+19
|
||||
+8
|
||||
+7
|
||||
+4
|
||||
+11
|
||||
+11
|
||||
-15
|
||||
-13
|
||||
+18
|
||||
-17
|
||||
+19
|
||||
+5
|
||||
-6
|
||||
-9
|
||||
+6
|
||||
+18
|
||||
-10
|
||||
+9
|
||||
-18
|
||||
-17
|
||||
-2
|
||||
-14
|
||||
-19
|
||||
-1
|
||||
-8
|
||||
-10
|
||||
-7
|
||||
-18
|
||||
+3
|
||||
+14
|
||||
+6
|
||||
+14
|
||||
-17
|
||||
+18
|
||||
+10
|
||||
+23
|
||||
+4
|
||||
-14
|
||||
+12
|
||||
-4
|
||||
-19
|
||||
+15
|
||||
+20
|
||||
-5
|
||||
+15
|
||||
+16
|
||||
-21
|
||||
+14
|
||||
-15
|
||||
-17
|
||||
-15
|
||||
+7
|
||||
+10
|
||||
+18
|
||||
+21
|
||||
+14
|
||||
+6
|
||||
+4
|
||||
+6
|
||||
+17
|
||||
-18
|
||||
-14
|
||||
-18
|
||||
-8
|
||||
+24
|
||||
+10
|
||||
+8
|
||||
-13
|
||||
+18
|
||||
+3
|
||||
-18
|
||||
-2
|
||||
-3
|
||||
-8
|
||||
-1
|
||||
-1
|
||||
-16
|
||||
+9
|
||||
-4
|
||||
+10
|
||||
+20
|
||||
+18
|
||||
+9
|
||||
-1
|
||||
+17
|
||||
-2
|
||||
+16
|
||||
+16
|
||||
-17
|
||||
+13
|
||||
+5
|
||||
-6
|
||||
-15
|
||||
-19
|
||||
+11
|
||||
-17
|
||||
-8
|
||||
+10
|
||||
-1
|
||||
+10
|
||||
-22
|
||||
-15
|
||||
+11
|
||||
+20
|
||||
-14
|
||||
+2
|
||||
+11
|
||||
+17
|
||||
+17
|
||||
+18
|
||||
-8
|
||||
+7
|
||||
+8
|
||||
-14
|
||||
+19
|
||||
-6
|
||||
+2
|
||||
+10
|
||||
+6
|
||||
+5
|
||||
+10
|
||||
+3
|
||||
-8
|
||||
-4
|
||||
-13
|
||||
-15
|
||||
-16
|
||||
-5
|
||||
-19
|
||||
+16
|
||||
-15
|
||||
+5
|
||||
-27
|
||||
-18
|
||||
+3
|
||||
-7
|
||||
+21
|
||||
-8
|
||||
-15
|
||||
-4
|
||||
-5
|
||||
-8
|
||||
+3
|
||||
+22
|
||||
+6
|
||||
+8
|
||||
+12
|
||||
-27
|
||||
+32
|
||||
-4
|
||||
+2
|
||||
+4
|
||||
-5
|
||||
+26
|
||||
-5
|
||||
-3
|
||||
-4
|
||||
+21
|
||||
+34
|
||||
+4
|
||||
-6
|
||||
+17
|
||||
-6
|
||||
+7
|
||||
+7
|
||||
+10
|
||||
-19
|
||||
+20
|
||||
+2
|
||||
+14
|
||||
+14
|
||||
+17
|
||||
+5
|
||||
+16
|
||||
-17
|
||||
+11
|
||||
-13
|
||||
-5
|
||||
+15
|
||||
+7
|
||||
-18
|
||||
-9
|
||||
-13
|
||||
-2
|
||||
-14
|
||||
-2
|
||||
-4
|
||||
-3
|
||||
-7
|
||||
+12
|
||||
+14
|
||||
-9
|
||||
+20
|
||||
+7
|
||||
+7
|
||||
+15
|
||||
+12
|
||||
-3
|
||||
-14
|
||||
-1
|
||||
+4
|
||||
-16
|
||||
+14
|
||||
-3
|
||||
-16
|
||||
-8
|
||||
+14
|
||||
+18
|
||||
+14
|
||||
-5
|
||||
-6
|
||||
+7
|
||||
+14
|
||||
+16
|
||||
-22
|
||||
-16
|
||||
-13
|
||||
-9
|
||||
-13
|
||||
-1
|
||||
-15
|
||||
-9
|
||||
-6
|
||||
+20
|
||||
+17
|
||||
+1
|
||||
-3
|
||||
+44
|
||||
+17
|
||||
+17
|
||||
+21
|
||||
+9
|
||||
+20
|
||||
-17
|
||||
+11
|
||||
+10
|
||||
-15
|
||||
+10
|
||||
+3
|
||||
+4
|
||||
+16
|
||||
+8
|
||||
-7
|
||||
+17
|
||||
+8
|
||||
+15
|
||||
-9
|
||||
+4
|
||||
+28
|
||||
+8
|
||||
-1
|
||||
-6
|
||||
-10
|
||||
-65
|
||||
+4
|
||||
-42
|
||||
-14
|
||||
-14
|
||||
-24
|
||||
-15
|
||||
+6
|
||||
+13
|
||||
-72
|
||||
-1
|
||||
-17
|
||||
-5
|
||||
+7
|
||||
-27
|
||||
+19
|
||||
-21
|
||||
-2
|
||||
+20
|
||||
-2
|
||||
+3
|
||||
-34
|
||||
+30
|
||||
+23
|
||||
-30
|
||||
-5
|
||||
+20
|
||||
-27
|
||||
+11
|
||||
-27
|
||||
-7
|
||||
-23
|
||||
+39
|
||||
-225
|
||||
+15
|
||||
+60
|
||||
+472
|
||||
+54569
|
||||
+1
|
||||
+15
|
||||
+13
|
||||
+6
|
||||
-10
|
||||
-13
|
||||
-2
|
||||
-6
|
||||
+13
|
||||
+2
|
||||
+5
|
||||
-10
|
||||
-5
|
||||
-11
|
||||
-1
|
||||
+18
|
||||
-12
|
||||
-15
|
||||
-7
|
||||
-1
|
||||
+13
|
||||
-18
|
||||
-1
|
||||
-5
|
||||
-2
|
||||
-14
|
||||
-5
|
||||
-4
|
||||
-16
|
||||
-10
|
||||
+8
|
||||
-1
|
||||
+20
|
||||
+11
|
||||
+15
|
||||
-3
|
||||
-17
|
||||
+8
|
||||
+11
|
||||
-6
|
||||
-9
|
||||
-8
|
||||
-11
|
||||
-1
|
||||
-13
|
||||
-3
|
||||
-8
|
||||
+12
|
||||
+18
|
||||
-11
|
||||
-17
|
||||
-12
|
||||
+6
|
||||
-7
|
||||
-3
|
||||
+15
|
||||
+9
|
||||
+13
|
||||
-14
|
||||
+18
|
||||
+20
|
||||
-6
|
||||
-12
|
||||
+2
|
||||
+20
|
||||
-12
|
||||
-23
|
||||
-17
|
||||
-7
|
||||
+1
|
||||
-24
|
||||
-17
|
||||
-7
|
||||
-18
|
||||
+3
|
||||
-13
|
||||
+14
|
||||
+2
|
||||
-12
|
||||
-16
|
||||
+2
|
||||
-35
|
||||
-3
|
||||
+2
|
||||
-18
|
||||
-14
|
||||
-13
|
||||
+10
|
||||
-3
|
||||
-17
|
||||
+4
|
||||
+23
|
||||
+16
|
||||
-7
|
||||
-30
|
||||
+29
|
||||
-19
|
||||
+18
|
||||
-3
|
||||
+20
|
||||
-7
|
||||
-3
|
||||
+77
|
||||
+1
|
||||
+42
|
||||
+18
|
||||
+9
|
||||
-1
|
||||
+23
|
||||
+57
|
||||
+8
|
||||
-12
|
||||
+1
|
||||
+5
|
||||
+12
|
||||
+3
|
||||
+10
|
||||
-1
|
||||
+14
|
||||
+20
|
||||
-7
|
||||
-3
|
||||
-14
|
||||
-12
|
||||
+9
|
||||
+16
|
||||
+16
|
||||
+12
|
||||
+14
|
||||
+11
|
||||
+11
|
||||
+2
|
||||
+1
|
||||
+19
|
||||
-10
|
||||
+18
|
||||
-17
|
||||
-9
|
||||
-11
|
||||
-8
|
||||
+10
|
||||
-1
|
||||
-110292
|
||||
Reference in New Issue
Block a user