finished day 1
This commit is contained in:
parent
0a6beb9bb6
commit
59459e7489
29
src/bin/1.rs
29
src/bin/1.rs
@ -40,8 +40,30 @@ use std::{fs::{File}, io};
|
|||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::io::{BufRead, BufReader};
|
use std::io::{BufRead, BufReader};
|
||||||
|
|
||||||
|
fn find_triple(target: i32, list: &Vec<i32>, set: &HashSet<i32>) -> i32 {
|
||||||
|
for i in list {
|
||||||
|
let product = find_pair(target - i, list, set);
|
||||||
|
if product > 0 {
|
||||||
|
return product * i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn find_pair(target: i32, list: &Vec<i32>, set: &HashSet<i32>) -> i32 {
|
||||||
|
for i in list {
|
||||||
|
if i > &target {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
let val = target - i;
|
||||||
|
if set.contains(&val) {
|
||||||
|
return i * val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
fn main() -> io::Result<()> {
|
||||||
//let contents = fs::read_to_string("1.input").expect("Couldn't read \"1.input\"");
|
|
||||||
let file = File::open("1.input")?;
|
let file = File::open("1.input")?;
|
||||||
let reader = BufReader::new(file);
|
let reader = BufReader::new(file);
|
||||||
|
|
||||||
@ -53,5 +75,10 @@ fn main() -> io::Result<()> {
|
|||||||
list.push(value);
|
list.push(value);
|
||||||
set.insert(value);
|
set.insert(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.sort();
|
||||||
|
|
||||||
|
println!("Pair is {}", find_pair(2020, &list, &set));
|
||||||
|
println!("Triple is {}", find_triple(2020, &list, &set));
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user