Day 1, part 2
parent
3442af1c78
commit
c378851aed
|
@ -5,3 +5,12 @@ version = 3
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aoc2021"
|
name = "aoc2021"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"bounded-vec-deque",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bounded-vec-deque"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2225b558afc76c596898f5f1b3fc35cfce0eb1b13635cbd7d1b2a7177dc10ccd"
|
||||||
|
|
|
@ -6,3 +6,4 @@ edition = "2018"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
bounded-vec-deque = "0.1.1"
|
||||||
|
|
12
src/main.rs
12
src/main.rs
|
@ -3,20 +3,28 @@ use std::io::prelude::*;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
|
|
||||||
|
use bounded_vec_deque::BoundedVecDeque;
|
||||||
|
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
fn main() -> io::Result<()> {
|
||||||
let args: Vec<String> = env::args().collect();
|
let args: Vec<String> = env::args().collect();
|
||||||
let f = File::open(&args[1])?;
|
let f = File::open(&args[1])?;
|
||||||
let buf = io::BufReader::new(f);
|
let buf = io::BufReader::new(f);
|
||||||
|
let mut deque: BoundedVecDeque<i32> = BoundedVecDeque::with_capacity(3, 3);
|
||||||
let mut last = -1;
|
let mut last = -1;
|
||||||
let mut count_incr = 0;
|
let mut count_incr = 0;
|
||||||
for line in buf.lines() {
|
for line in buf.lines() {
|
||||||
if let Ok(l) = line {
|
if let Ok(l) = line {
|
||||||
if let Ok(value) = i32::from_str_radix(&l, 10) {
|
if let Ok(value) = i32::from_str_radix(&l, 10) {
|
||||||
if last > 0 && value > last {
|
deque.push_back(value);
|
||||||
|
}
|
||||||
|
if deque.is_full() {
|
||||||
|
eprintln!("{:?}", deque);
|
||||||
|
let sum = deque.iter().sum();
|
||||||
|
if last > -1 && sum > last {
|
||||||
count_incr += 1;
|
count_incr += 1;
|
||||||
}
|
}
|
||||||
last = value;
|
last = sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue