Skip to content

Commit 8fd9355

Browse files
authored
Day 5, Part 1, Part 2 (#32)
1 parent b8d4068 commit 8fd9355

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed

2023/05/jacksonmowry.v

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
module main
2+
3+
import os
4+
import arrays
5+
import math
6+
7+
fn main() {
8+
input := os.read_file('seed_map.input')!
9+
.split('\n\n')
10+
.map(it.split_into_lines().map(it.trim_space()))
11+
mut seeds := (input[0][0].split(': ')[1]).split(' ').map(it.i64())
12+
for m in 1 .. 8 {
13+
maps := input[m][1..].map(it.split(' ').map(it.i64()))
14+
for i := 0; i < seeds.len; i++ {
15+
for line in maps {
16+
if seeds[i] >= line[1] && seeds[i] <= line[1] + line[2] {
17+
seeds[i] = line[0] + (seeds[i] - line[1])
18+
break
19+
}
20+
}
21+
}
22+
}
23+
24+
println('Part 1: ${arrays.min(seeds)!}')
25+
26+
mut seeds_2 := (input[0][0].split(': ')[1]).split(' ').map(it.u64())
27+
mut part_2_min := max_u64
28+
mut maps := [][][]u64{}
29+
for i in 1 .. 8 {
30+
maps << input[i][1..].map(it.split(' ').map(it.u64()))
31+
}
32+
for i := 0; i < seeds_2.len - 1; i += 2 {
33+
end := seeds_2[i] + seeds_2[i + 1] - 1
34+
for start := seeds_2[i]; start <= end; start++ {
35+
mut copy := start
36+
for mapx in maps {
37+
for line in mapx {
38+
if copy >= line[1] && copy < line[1] + line[2] {
39+
copy = line[0] + copy - line[1]
40+
break
41+
}
42+
}
43+
}
44+
part_2_min = math.min(part_2_min, copy)
45+
}
46+
}
47+
println('Part 2: ${part_2_min}')
48+
}

2023/05/seed_map.input

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
seeds: 79 14 55 13
2+
3+
seed-to-soil map:
4+
50 98 2
5+
52 50 48
6+
7+
soil-to-fertilizer map:
8+
0 15 37
9+
37 52 2
10+
39 0 15
11+
12+
fertilizer-to-water map:
13+
49 53 8
14+
0 11 42
15+
42 0 7
16+
57 7 4
17+
18+
water-to-light map:
19+
88 18 7
20+
18 25 70
21+
22+
light-to-temperature map:
23+
45 77 23
24+
81 45 19
25+
68 64 13
26+
27+
temperature-to-humidity map:
28+
0 69 1
29+
1 0 69
30+
31+
humidity-to-location map:
32+
60 56 37
33+
56 93 4
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Part 1: 35
2+
Part 2: 46

0 commit comments

Comments
 (0)