Day 4
parent
60af8bb695
commit
394e3c175c
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,41 @@
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
use anyhow::Result;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let input = fs::read_to_string("input/04.txt")?;
|
||||||
|
|
||||||
|
let lines: Vec<&str> = input
|
||||||
|
.split("\n")
|
||||||
|
.filter(|s| *s != "")
|
||||||
|
.collect_vec();
|
||||||
|
|
||||||
|
|
||||||
|
// ........fl........fu......
|
||||||
|
// ......sl............su....
|
||||||
|
//
|
||||||
|
// ..fl.....fu...............
|
||||||
|
// ...........sl....su.......
|
||||||
|
//
|
||||||
|
// ........fl........fu......
|
||||||
|
// ..........sl....su........
|
||||||
|
//
|
||||||
|
// ................fl....fu..
|
||||||
|
// ..sl......su..............
|
||||||
|
|
||||||
|
|
||||||
|
let result = lines
|
||||||
|
.into_iter()
|
||||||
|
.map(|s| s.split(","))
|
||||||
|
.map(|mut i| (i.next().unwrap(), i.next().unwrap()))
|
||||||
|
.map(|(f, s)| (f.split("-"), s.split("-")))
|
||||||
|
.map(|(mut f, mut s)| (f.next().unwrap().parse::<i32>().ok(), f.next().unwrap().parse::<i32>().ok(), s.next().unwrap().parse::<i32>().ok(), s.next().unwrap().parse::<i32>().ok()))
|
||||||
|
.filter(|(fl, fu, sl, su)| (fl >= sl && fu <= su && fu >= sl) || (fl <= sl && fu >= su && fl <= su))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("{result}");
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
use anyhow::Result;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let input = fs::read_to_string("input/04.txt")?;
|
||||||
|
|
||||||
|
let lines: Vec<&str> = input
|
||||||
|
.split("\n")
|
||||||
|
.filter(|s| *s != "")
|
||||||
|
.collect_vec();
|
||||||
|
|
||||||
|
|
||||||
|
// ........fl........fu......
|
||||||
|
// ......sl............su....
|
||||||
|
//
|
||||||
|
// ..fl.....fu...............
|
||||||
|
// .......sl....su.........
|
||||||
|
//
|
||||||
|
// ........fl........fu......
|
||||||
|
// ..........sl....su........
|
||||||
|
//
|
||||||
|
// ........fl....fu..........
|
||||||
|
// ..sl......su..............
|
||||||
|
|
||||||
|
|
||||||
|
let result = lines
|
||||||
|
.into_iter()
|
||||||
|
.map(|s| s.split(","))
|
||||||
|
.map(|mut i| (i.next().unwrap(), i.next().unwrap()))
|
||||||
|
.map(|(f, s)| (f.split("-"), s.split("-")))
|
||||||
|
.map(|(mut f, mut s)| (f.next().unwrap().parse::<i32>().ok(), f.next().unwrap().parse::<i32>().ok(), s.next().unwrap().parse::<i32>().ok(), s.next().unwrap().parse::<i32>().ok()))
|
||||||
|
.filter(|(fl, fu, sl, su)| (fl >= sl && fl <= su) || (fu >= sl && fu <= su ) || (sl >= fl && sl <= fu) || (su >= fl && su <= fu))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("{result}");
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
Loading…
Reference in New Issue