Use itertools to chain sorting in day 5
This commit is contained in:
parent
3d2785b7d3
commit
5e7baf8cc5
16
rust/Cargo.lock
generated
16
rust/Cargo.lock
generated
@ -6,9 +6,25 @@ version = 4
|
|||||||
name = "aoc"
|
name = "aoc"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"itertools",
|
||||||
"nom",
|
"nom",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "either"
|
||||||
|
version = "1.15.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itertools"
|
||||||
|
version = "0.14.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
|
||||||
|
dependencies = [
|
||||||
|
"either",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.7.6"
|
version = "2.7.6"
|
||||||
|
|||||||
@ -8,4 +8,5 @@ path = "main.rs"
|
|||||||
name = "aoc"
|
name = "aoc"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
itertools = "0.14"
|
||||||
nom = "8.0.0"
|
nom = "8.0.0"
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
use crate::puzzle::Puzzle;
|
use crate::puzzle::Puzzle;
|
||||||
|
use itertools::Itertools;
|
||||||
use nom::{
|
use nom::{
|
||||||
Parser,
|
Parser,
|
||||||
character::complete::{char, newline, usize},
|
character::complete::{char, newline, usize},
|
||||||
@ -35,10 +36,8 @@ pub const PUZZLE: Puzzle<(Vec<Range>, Vec<usize>), 2> = Puzzle {
|
|||||||
.to_string()
|
.to_string()
|
||||||
},
|
},
|
||||||
|(ranges, _)| {
|
|(ranges, _)| {
|
||||||
let mut sorted_ranges = ranges.clone();
|
|
||||||
sorted_ranges.sort_by_key(|r| r.lower);
|
|
||||||
let mut merged = Ranges::new();
|
let mut merged = Ranges::new();
|
||||||
for r in sorted_ranges {
|
for r in ranges.iter().cloned().sorted_by_key(|r| r.lower) {
|
||||||
merged.add(r);
|
merged.add(r);
|
||||||
}
|
}
|
||||||
merged.total_length().to_string()
|
merged.total_length().to_string()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user