-
Notifications
You must be signed in to change notification settings - Fork 0
/
day2_part1.jakt
44 lines (36 loc) · 1.07 KB
/
day2_part1.jakt
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
/// Expect:
/// - output: "5000\n"
import reader
import utility
function main() {
mut twice_count = 0
mut thrice_count = 0
for boxes in reader::lines_string(day: 2).iterator() {
let ids = utility::string_to_char_array(boxes)
mut letter_count: [u8:i64] = [:]
mut current_twice_count = 0
mut current_thrice_count = 0
for id in ids.iterator() {
if letter_count.contains(id) {
letter_count[id]++
if letter_count[id] == 2 {
current_twice_count++
} else if letter_count[id] == 3 {
current_twice_count--
current_thrice_count++
} else if letter_count[id] == 4 {
current_thrice_count--
}
} else {
letter_count[id] = 1
}
}
if current_twice_count > 0 {
twice_count++
}
if current_thrice_count > 0 {
thrice_count++
}
}
println("{}", twice_count * thrice_count)
}