Skip to content

Commit

Permalink
feat: day 06 part a
Browse files Browse the repository at this point in the history
  • Loading branch information
t-cc committed Dec 7, 2023
1 parent 218e15b commit 218fb26
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
2 changes: 2 additions & 0 deletions data/examples/06.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Time: 7 15 30
Distance: 9 40 200
64 changes: 64 additions & 0 deletions src/bin/06.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
advent_of_code::solution!(6);

pub fn part_one(input: &str) -> Option<u32> {
let mut lines = input.lines();
let times: Vec<u32> = lines
.next()
.unwrap()
.split(':')
.last()
.unwrap()
.split_ascii_whitespace()
.map(|a| a.parse::<u32>().unwrap())
.collect();

let distances: Vec<u32> = lines
.next()
.unwrap()
.split(':')
.last()
.unwrap()
.split_ascii_whitespace()
.map(|a| a.parse::<u32>().unwrap())
.collect();

println!("{:?}", times);
println!("{:?}", distances);

let mut sums: Vec<u32> = Vec::new();
for i in 0..times.len() {
let mut best_counts = 0u32;
let time = times[i];
let record = distances[i];
for speed in 0..time {
let time_left = time - speed;
if time_left * speed >= record {
best_counts += 1;
}
}
sums.push(best_counts);
}
println!("SUM -> {:?}", sums);
return sums.iter().cloned().reduce(|a, b| a * b);
}

pub fn part_two(input: &str) -> Option<u32> {
None
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_part_one() {
let result = part_one(&advent_of_code::template::read_file("examples", DAY));
assert_eq!(result, Some(288u32));
}

#[test]
fn test_part_two() {
let result = part_two(&advent_of_code::template::read_file("examples", DAY));
assert_eq!(result, None);
}
}

0 comments on commit 218fb26

Please sign in to comment.