day 9 pt1

This commit is contained in:
RussellChamp committed 2024-12-19 18:21:55 +00:00
1 parent 8f6d81b669
commit 4d3be56120
3 files changed
+111 -18

No files matched your search

Generated
+104 -9
View File
@@ -23,7 +23,9 @@ version = "0.11.0"
dependencies = [
"chrono",
"dhat",
"fn-cache",
"itertools",
"num",
"pico-args",
"regex",
"tap",
@@ -122,6 +124,26 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "derive_more"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
dependencies = [
"derive_more-impl",
]
[[package]]
name = "derive_more-impl"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "dhat"
version = "0.3.3"
@@ -144,6 +166,15 @@ version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "fn-cache"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2384325bacc12de35889192f061efaf85331ff9513ee30f65b3d1adf3ff6fc13"
dependencies = [
"derive_more",
]
[[package]]
name = "gimli"
version = "0.28.1"
@@ -251,10 +282,74 @@ dependencies = [
]
[[package]]
name = "num-traits"
version = "0.2.17"
name = "num"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
dependencies = [
"num-bigint",
"num-complex",
"num-integer",
"num-iter",
"num-rational",
"num-traits",
]
[[package]]
name = "num-bigint"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
dependencies = [
"num-integer",
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
dependencies = [
"num-traits",
]
[[package]]
name = "num-integer"
version = "0.1.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
dependencies = [
"num-traits",
]
[[package]]
name = "num-iter"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
dependencies = [
"num-bigint",
"num-integer",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
@@ -305,18 +400,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
[[package]]
name = "proc-macro2"
version = "1.0.70"
version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.33"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@@ -422,9 +517,9 @@ checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]]
name = "syn"
version = "2.0.39"
version = "2.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
dependencies = [
"proc-macro2",
"quote",
+2
View File
@@ -24,7 +24,9 @@ test_lib = []
# Template dependencies
chrono = { version = "0.4.38", optional = true }
dhat = { version = "0.3.3", optional = true }
fn-cache = "2.0.0"
itertools = "0.13.0"
num = "0.4.3"
pico-args = "0.5.0"
regex = "1.11.1"
tap = "1.0.1"
+5 -9
View File
@@ -4,7 +4,7 @@ use itertools::Itertools;
advent_of_code::solution!(9);
pub fn part_one(input: &str) -> Option<u32> {
pub fn part_one(input: &str) -> Option<u64> {
// println!("INPUT:");
// println!("{}", input);
@@ -20,7 +20,7 @@ pub fn part_one(input: &str) -> Option<u32> {
let checksum = get_checksum(compressed_blocks);
Some(checksum as u32)
Some(checksum as u64)
}
pub fn part_two(_input: &str) -> Option<u32> {
@@ -83,13 +83,9 @@ mod tests {
let input = "2333133121414131402\n";
let blocks = create_blocks(input.chars().collect_vec());
let result_str = blocks.iter().fold("".to_string(), |cur, next| {
if *next == None {
cur + "."
} else {
cur + &next.unwrap().to_string()
}
});
let result_str: String = blocks.iter().map(|b| {
if Option::is_some(b) { b.unwrap().to_string() } else { ".".to_string() }
}).collect();
assert_eq!(result_str, "00...111...2...333.44.5555.6666.777.888899");
}