Skip to content

Commit

Permalink
day5 part2. --release power
Browse files Browse the repository at this point in the history
yathi committed Dec 29, 2023
1 parent 0d570ed commit 2af0035
Showing 2 changed files with 30 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/day5.rs
Original file line number Diff line number Diff line change
@@ -18,6 +18,35 @@ pub fn part1() {
println!("{:?}", result);
}
}
pub fn part2() {
// let path = "data/day5-sample.txt";
let path = "data/day5.txt";
let contents = fs::read_to_string(path).expect("Should have been able to read the file");
if let Some((seeds, maps)) = contents.split("\n\n").collect::<Vec<_>>().split_first() {
println!("{:?}", seeds);
let entry_maps = maps.iter().map(|m| Mapping::new(m)).collect::<Vec<_>>();
// println!("{:?}", entry_maps);
let (_, seed_line) = seeds.split_once(": ").unwrap();
let mut curr_min = std::i64::MAX;

let mut iter_seeds = seed_line.split_whitespace();

while let Some(start_str) = iter_seeds.next() {
let start: i64 = start_str.parse().unwrap();

if let Some(count_str) = iter_seeds.next() {
let count = count_str.parse::<i64>().unwrap();

for num in start..(start+count) {
let map = get_final_mapping(num, &entry_maps);
curr_min = curr_min.min(map);
}
}
}

println!("{:?}", curr_min);
}
}

fn get_final_mapping(seed: i64, entry_maps: &Vec<Mapping>) -> i64 {
entry_maps.iter().fold(seed, |acc, map| map.get_map(acc))
1 change: 1 addition & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -13,4 +13,5 @@ fn main() {
// day3::part2();
// day4::part2();
day5::part1();
day5::part2();
}

0 comments on commit 2af0035

Please sign in to comment.