Advent 2023 Day 6
This commit is contained in:
parent
6567050431
commit
57429c49e9
6 changed files with 79 additions and 10 deletions
35
advent_of_code_2023/day6/main2.rs
Normal file
35
advent_of_code_2023/day6/main2.rs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
use std::fs::read_to_string;
|
||||
|
||||
fn parse_number_from_line(line: &str) -> u64 {
|
||||
line.split_once(' ').unwrap().1
|
||||
.split(' ').filter(|line| {
|
||||
!line.is_empty()
|
||||
}).collect::<String>().parse::<u64>().unwrap()
|
||||
}
|
||||
|
||||
fn count_winning_strategies(time: u64, distance: u64) -> u64 {
|
||||
let mut winners = 0;
|
||||
|
||||
for hold in 0..time {
|
||||
if (time - hold) * hold > distance {
|
||||
winners += 1
|
||||
}
|
||||
}
|
||||
|
||||
winners
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
||||
let lines = read_to_string("input.txt").unwrap().lines().map(|line| {
|
||||
String::from(line)
|
||||
}).collect::<Vec<_>>();
|
||||
|
||||
let time = parse_number_from_line(&lines[0]);
|
||||
let distance = parse_number_from_line(&lines[1]);
|
||||
|
||||
println!("time: {:?}", time);
|
||||
println!("distance: {:?}", distance);
|
||||
|
||||
println!("Winning strategies: {}", count_winning_strategies(time, distance));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue