advent_of_code/2023/day15/rust/src/part_one.rs

37 lines
842 B
Rust
Executable File

use std::fs::File;
use std::io::{self, prelude::*, BufReader};
fn get_hash(line: &str) -> u32 {
let mut ret = 0;
for s in line.chars(){
let ascii = s as u32;
ret += ascii;
ret = 17*ret;
ret = ret%256;
// println!("{}", ascii);
}
return ret;
}
fn process_text(parts: Vec<&str>) -> u32 {
let mut ret = 0;
for part in parts {
ret += get_hash(part);
}
return ret;
}
fn main() -> io::Result<()> {
let file = File::open("../input.txt")?;
let reader = BufReader::new(file);
let line = reader.lines().collect::<io::Result<Vec<String>>>().expect("failed");
let parts = line[0].split(&[',']).collect::<Vec<&str>>();
let answer = process_text(
parts
);
println!("{}", answer);
Ok(())
}