diff --git a/01/main.rs b/01/main.rs index 93528c2..7788c29 100644 --- a/01/main.rs +++ b/01/main.rs @@ -22,10 +22,55 @@ fn read_lines

(filename: P) -> io::Result>> where P: AsRef, { + // note that this discards a final newline let file = File::open(filename)?; Ok(io::BufReader::new(file).lines()) } -fn part_one() {} +fn part_one() { + if let Ok(lines) = read_lines("./inputs/input") { + let mut biggest = 0; + let mut accumulator = 0; + for line in lines { + if let Ok(calories) = line { + if calories != "" { + accumulator += calories.parse::().unwrap(); + } else { + if accumulator > biggest { + biggest = accumulator + } + accumulator = 0; + } + } + } + // catching final elf + if accumulator > biggest { + biggest = accumulator + } + println!("{}", biggest); + } +} -fn part_two() {} +fn part_two() { + if let Ok(lines) = read_lines("./inputs/input") { + let mut elves = Vec::new(); + let mut accumulator = 0; + for line in lines { + if let Ok(calories) = line { + if calories != "" { + accumulator += calories.parse::().unwrap(); + } else { + elves.push(accumulator); + accumulator = 0; + } + } + } + // catching final elf + elves.push(accumulator); + elves.sort_unstable(); + println!( + "{}", + elves.pop().unwrap() + elves.pop().unwrap() + elves.pop().unwrap() + ); + } +} diff --git a/main.rs.tmpl b/main.rs.tmpl index 93528c2..cad33f6 100644 --- a/main.rs.tmpl +++ b/main.rs.tmpl @@ -22,6 +22,7 @@ fn read_lines

(filename: P) -> io::Result>> where P: AsRef, { + // note that this discards a final newline let file = File::open(filename)?; Ok(io::BufReader::new(file).lines()) }