day01 both
This commit is contained in:
36
src/tasks/day01.rs
Normal file
36
src/tasks/day01.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use std::collections::HashSet;
|
||||
use utils;
|
||||
|
||||
pub fn task1() {
|
||||
let contents = utils::read_file("input/day01.txt");
|
||||
|
||||
let mut frequency = 0;
|
||||
for line in contents.split_whitespace() {
|
||||
let number: i32 = line.parse().unwrap();
|
||||
frequency += number;
|
||||
}
|
||||
|
||||
println!("Result: {}", frequency);
|
||||
}
|
||||
|
||||
pub fn task2() {
|
||||
let contents = utils::read_file("input/day01.txt");
|
||||
|
||||
let mut seen = HashSet::new();
|
||||
|
||||
let mut frequency = 0;
|
||||
seen.insert(frequency);
|
||||
let changes: Vec<i32> = contents.lines().map(|line| line.parse().unwrap()).collect();
|
||||
|
||||
loop {
|
||||
for number in changes.iter() {
|
||||
frequency += number;
|
||||
if seen.contains(&frequency) {
|
||||
println!("{} was there already!", frequency);
|
||||
return;
|
||||
}
|
||||
|
||||
seen.insert(frequency);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user