advent-of-code/2023/03/rust/main.rs

65 lines
1.2 KiB
Rust
Raw Normal View History

2024-12-08 20:34:32 +00:00
#![feature(test)]
extern crate test;
#[cfg(test)]
mod tests {
use super::*;
use test::Bencher;
#[bench]
fn bench_a(b: &mut Bencher) {
b.iter(|| part_a(INPUT));
}
#[bench]
fn bench_b(b: &mut Bencher) {
b.iter(|| part_b(INPUT));
}
}
const INPUT: &str = include_str!("../input.txt");
const TEST: &str = include_str!("../test.txt");
struct Point {
x: usize,
y: usize,
}
fn part_a(input: &str) {
let result = input.trim();
let lines = result.split("\n").collect::<Vec<&str>>();
let mut symbols: Vec<Vec<usize>> = Vec::new();
for _ in [0..lines.len()] {
symbols.push(vec![0; 0]);
}
for (y, line) in result.split("\n").enumerate() {
for (x, char) in line.chars().enumerate() {
match char {
'*' | '&' | '+' | '#' | '$' => symbols[y].push(x),
_ => {}
}
}
}
println!("{:?}", symbols);
}
fn part_b(input: &str) {
let result = input.trim();
println!("{}", result);
}
fn main() {
println!("Part A:");
part_a(TEST);
// part_a(INPUT);
println!("\nPart B:");
// part_b(TEST);
// part_b(INPUT);
}