|
|
@@ -0,0 +1,59 @@
|
|
|
+import java.nio.file.Files
|
|
|
+import kotlin.io.path.Path
|
|
|
+
|
|
|
+fun main() {
|
|
|
+
|
|
|
+ val lines = Files.readAllLines(Path("puzzleInput/02-input.txt"))
|
|
|
+ println(lines)
|
|
|
+ val day = Day02(lines)
|
|
|
+ day.solvePuzzlePartOne()
|
|
|
+ day.solvePuzzlePartTwo()
|
|
|
+}
|
|
|
+
|
|
|
+class Day02(val lines: MutableList<String>) {
|
|
|
+
|
|
|
+ fun solvePuzzlePartOne() {
|
|
|
+ var depth: Int = 0
|
|
|
+ var pos: Int = 0
|
|
|
+
|
|
|
+ for (line in lines) {
|
|
|
+ val i = line.split(" ")[1].toInt()
|
|
|
+ when (line.first()) {
|
|
|
+ 'f' -> {
|
|
|
+ pos += i
|
|
|
+ }
|
|
|
+ 'd' -> {
|
|
|
+ depth += i
|
|
|
+ }
|
|
|
+ 'u' -> {
|
|
|
+ depth -= i
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ println("PartOne: $depth * $pos = ${depth * pos}")
|
|
|
+ }
|
|
|
+
|
|
|
+ fun solvePuzzlePartTwo() {
|
|
|
+ var depth: Int = 0
|
|
|
+ var pos: Int = 0
|
|
|
+ var aim: Int = 0
|
|
|
+
|
|
|
+ for (line in lines) {
|
|
|
+ val i = line.split(" ")[1].toInt()
|
|
|
+ when (line.first()) {
|
|
|
+ 'f' -> {
|
|
|
+ pos += i
|
|
|
+ depth += aim*i
|
|
|
+ }
|
|
|
+ 'd' -> {
|
|
|
+ aim += i
|
|
|
+ }
|
|
|
+ 'u' -> {
|
|
|
+ aim -= i
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ println("PartOne: $depth * $pos = ${depth * pos}")
|
|
|
+ }
|
|
|
+
|
|
|
+}
|