aboutsummaryrefslogtreecommitdiff
path: root/2023
diff options
context:
space:
mode:
authorMatias Linares <matias@deprecated.org>2023-12-04 09:58:27 -0300
committerMatias Linares <matias@deprecated.org>2023-12-04 09:58:27 -0300
commita73cbbc18cb365cfcb069cb712f55dc30325c974 (patch)
tree54738c0ae78e31a2bf6030cf51b37eddc43c4aa9 /2023
parenta4e55ef3c10e2de2fd47e2b8b0042e7db790d937 (diff)
downloadadvent-of-code-master.tar.gz
[WIP] day3 part1HEADmaster
Diffstat (limited to '2023')
-rw-r--r--2023/day-03/.projectile0
-rw-r--r--2023/day-03/Cargo.lock7
-rw-r--r--2023/day-03/Cargo.toml8
-rw-r--r--2023/day-03/src/main.rs38
-rw-r--r--2023/day-03/src/sample.txt10
5 files changed, 63 insertions, 0 deletions
diff --git a/2023/day-03/.projectile b/2023/day-03/.projectile
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/2023/day-03/.projectile
diff --git a/2023/day-03/Cargo.lock b/2023/day-03/Cargo.lock
new file mode 100644
index 0000000..17695b0
--- /dev/null
+++ b/2023/day-03/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "day-03"
+version = "0.1.0"
diff --git a/2023/day-03/Cargo.toml b/2023/day-03/Cargo.toml
new file mode 100644
index 0000000..51cc795
--- /dev/null
+++ b/2023/day-03/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "day-03"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/2023/day-03/src/main.rs b/2023/day-03/src/main.rs
new file mode 100644
index 0000000..43891cd
--- /dev/null
+++ b/2023/day-03/src/main.rs
@@ -0,0 +1,38 @@
+#[derive(Debug)]
+struct Number {
+ position: (usize, usize),
+ string: String,
+}
+
+impl Number {
+}
+
+fn main() {
+ let input = include_str!("./sample.txt");
+ let v: Vec<Number> = input.lines()
+ .map(|line: &str| {
+ let numbers: Vec<&str> = line
+ .split(|c: char| { !c.is_alphanumeric() })
+ .filter(|v| { v.len() > 0 })
+ .collect();
+ numbers.iter().enumerate().map(|(idx, number)| {
+ line.match_indices(number).map(|(pos, string)| -> &mut Number {
+ &mut Number {
+ position: (idx, pos),
+ string: String::from(string),
+ }
+ }).collect()
+ }).collect()
+ })
+ .fold(vec!(), |acc: Vec<Number>, e| { acc.append(e) });
+ dbg!(v);
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ fn test_input() {
+ let _input = include_str!("./sample.txt");
+ }
+}
diff --git a/2023/day-03/src/sample.txt b/2023/day-03/src/sample.txt
new file mode 100644
index 0000000..b20187f
--- /dev/null
+++ b/2023/day-03/src/sample.txt
@@ -0,0 +1,10 @@
+467..114..
+...*......
+..35..633.
+......#...
+617*......
+.....+.58.
+..592.....
+......755.
+...$.*....
+.664.598..