-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay1.kt
54 lines (38 loc) · 1.09 KB
/
Day1.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.io.File
import java.io.InputStream
import kotlin.math.abs
const val path = "data/day1.txt"
fun main() {
val inputStream: InputStream = File(path).inputStream()
val inputString = inputStream.bufferedReader().use { it.readText() }
val inputLines = inputString.split('\n')
val firstList = mutableListOf<Int>()
val secondList = mutableListOf<Int>()
for (line in inputLines) {
val (x, y) = line.split(" ")
val xInt = x.toInt()
val yInt = y.toInt()
firstList.add(xInt)
secondList.add(yInt)
}
fun part1() {
firstList.sort()
secondList.sort()
var total_sum = 0
for ((x, y) in firstList zip secondList) {
val difference = abs(x - y)
total_sum += difference
}
println(total_sum)
}
fun part2() {
var similarity_score = 0
for (num in firstList) {
val occurences = secondList.count { it == num }
similarity_score += num * occurences
}
println(similarity_score)
}
part1()
part2()
}