Day 12 part 1.

This commit is contained in:
2024-01-12 16:46:12 +01:00
parent bf8b6ae56b
commit 41dc08ca98
4 changed files with 72 additions and 1 deletions

45
Cargo.lock generated
View File

@@ -8,6 +8,16 @@ version = "0.1.0"
dependencies = [
"aoc-runner",
"aoc-runner-derive",
"regex",
]
[[package]]
name = "aho-corasick"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
dependencies = [
"memchr",
]
[[package]]
@@ -45,6 +55,12 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
[[package]]
name = "memchr"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
[[package]]
name = "proc-macro2"
version = "0.4.21"
@@ -81,6 +97,35 @@ dependencies = [
"proc-macro2 1.0.47",
]
[[package]]
name = "regex"
version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "ryu"
version = "0.2.7"

View File

@@ -10,3 +10,4 @@ bench = false
[dependencies]
aoc-runner = "0.3.0"
aoc-runner-derive = "0.3.0"
regex = "1.10.2"

24
src/day12.rs Normal file
View File

@@ -0,0 +1,24 @@
use aoc_runner_derive::aoc;
use regex::Regex;
#[aoc(day12, part1)]
fn part1(input: &str) -> i64 {
Regex::new(r"-?\d+")
.unwrap()
.find_iter(input)
.map(|m| m.as_str().parse::<i64>().unwrap())
.sum()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn part1_example() {
assert_eq!(part1("[1,2,3]"), 6);
assert_eq!(part1("{\"a\":2,\"b\":4}"), 6);
assert_eq!(part1(r"[[[3]]]"), 3);
assert_eq!(part1(r#"{"a":{"b":4},"c":-1}"#), 3);
}
}

View File

@@ -4,5 +4,6 @@ extern crate aoc_runner_derive;
mod day10;
mod day11;
mod day12;
aoc_lib! { year = 2015 }