Added day 1 pt 2
This commit is contained in:
parent
6b000c42d1
commit
be1be5f25a
|
@ -0,0 +1,11 @@
|
||||||
|
199
|
||||||
|
200
|
||||||
|
208
|
||||||
|
210
|
||||||
|
200
|
||||||
|
207
|
||||||
|
240
|
||||||
|
269
|
||||||
|
260
|
||||||
|
263
|
||||||
|
|
35
src/main.rs
35
src/main.rs
|
@ -1,3 +1,6 @@
|
||||||
|
#![feature(test)]
|
||||||
|
extern crate test;
|
||||||
|
|
||||||
const INPUT: &'static str = include_str!("../inputs/day1.txt");
|
const INPUT: &'static str = include_str!("../inputs/day1.txt");
|
||||||
|
|
||||||
fn depths() -> Vec<u64> {
|
fn depths() -> Vec<u64> {
|
||||||
|
@ -8,15 +11,39 @@ fn depths() -> Vec<u64> {
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn solution(depths: &[u64]) -> i32 {
|
||||||
let days = depths();
|
|
||||||
let mut count = 0;
|
let mut count = 0;
|
||||||
|
|
||||||
for set in days.windows(2) {
|
// For a window size of 3, We can consider a window size of 4
|
||||||
if set[1] > set[0] {
|
// A + B + C && B + C + D
|
||||||
|
// Since B, C are shared between the two consecutive sets,
|
||||||
|
// We only need to compare A and D
|
||||||
|
for set in depths.windows(4) {
|
||||||
|
if set[0] < set[3] {
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
count
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let depths = &depths();
|
||||||
|
let count = solution(depths);
|
||||||
println!("increased {} times", count);
|
println!("increased {} times", count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[bench]
|
||||||
|
fn solution_bench(b: &mut test::Bencher) {
|
||||||
|
let depths = depths();
|
||||||
|
|
||||||
|
b.iter(|| {
|
||||||
|
let v = solution(&depths);
|
||||||
|
test::black_box(v);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn solution_test() {
|
||||||
|
assert_eq!(solution(&depths()), 1429);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue