|
@@ -0,0 +1,69 @@
|
|
|
+use std::collections::HashMap;
|
|
|
+
|
|
|
+fn spawn_points(start: (i32, i32), pattern: &str) -> Vec<(i32, i32)> {
|
|
|
+
|
|
|
+ let mut pts = vec![];
|
|
|
+
|
|
|
+ let digits = pattern
|
|
|
+ .chars()
|
|
|
+ .filter(|x| x.is_numeric())
|
|
|
+ .collect::<String>()
|
|
|
+ .parse()
|
|
|
+ .unwrap();
|
|
|
+
|
|
|
+ let direction: String = pattern.chars().filter(|x| !x.is_numeric()).collect();
|
|
|
+
|
|
|
+ match direction.as_ref() {
|
|
|
+ "R" => {
|
|
|
+ for d in 0..digits {
|
|
|
+ let mut s = start;
|
|
|
+ s.0 += d;
|
|
|
+ pts.push(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ "L" => {
|
|
|
+ for d in 0..digits {
|
|
|
+ let mut s = start;
|
|
|
+ s.0 -= d;
|
|
|
+ pts.push(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ "U" => {
|
|
|
+ for d in 0..digits {
|
|
|
+ let mut s = start;
|
|
|
+ s.1 += d;
|
|
|
+ pts.push(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ "D" => {
|
|
|
+ for d in 0..digits {
|
|
|
+ let mut s = start;
|
|
|
+ s.1 -= d;
|
|
|
+ pts.push(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _ => {}
|
|
|
+
|
|
|
+ }
|
|
|
+ pts
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+fn solve() {
|
|
|
+ // R75,D30,R83,U83,L12,D49,R71,U7,L72
|
|
|
+
|
|
|
+ // Hashmap that has a 2d point as key and a vec for wire indices
|
|
|
+ let grid: HashMap<(i32,i32), Vec<usize>> = HashMap::new();
|
|
|
+
|
|
|
+ let p = spawn_points((0,0), "R10");
|
|
|
+ dbg!(p);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+pub fn main() {
|
|
|
+ solve();
|
|
|
+}
|