Compare commits

..

No commits in common. "04ae9d47ef4eb7065771e9794ed952554ebd011f" and "742f35b73e04a91d75eaec2abdf77af25bf6122b" have entirely different histories.

2 changed files with 4 additions and 21 deletions

View File

@ -16,5 +16,5 @@ fn part1() {
fn part2() { fn part2() {
let root = env!("CARGO_MANIFEST_DIR"); let root = env!("CARGO_MANIFEST_DIR");
let content = fs::read_to_string(format!("{root}/resources/7_input.txt")).unwrap(); let content = fs::read_to_string(format!("{root}/resources/7_input.txt")).unwrap();
println!("{}", d7::process_part2(&content).get("a").unwrap()); println!("{:#?}", d7::process_part2(&content));
} }

View File

@ -9,7 +9,7 @@ pub fn process_part1(input: &str) -> HashMap<String, u16> {
instructions.insert(wire.to_string(), expression.to_string()); instructions.insert(wire.to_string(), expression.to_string());
} }
for wire in instructions.keys() { for wire in instructions.keys() {
set_wire(wire.to_string(), &mut wires, &instructions); set_wire(wire.to_owned(), &mut wires, &instructions);
} }
wires wires
} }
@ -39,7 +39,7 @@ fn set_wire(
if parts.len() == 2 { if parts.len() == 2 {
let value = set_wire(parts[1].clone(), wires, instructions); let value = set_wire(parts[1].clone(), wires, instructions);
wires.insert(wire, !value); wires.insert(wire, !value);
return !value; return value;
} }
if parts.len() == 3 { if parts.len() == 3 {
let left = match parts[0].parse::<u16>() { let left = match parts[0].parse::<u16>() {
@ -81,24 +81,7 @@ fn set_wire(
panic!("Should not happen"); panic!("Should not happen");
} }
pub fn process_part2(input: &str) -> HashMap<String, u16> { pub fn process_part2(_input: &str) {}
let mut wires = HashMap::new();
let mut instructions = HashMap::new();
for instruction in input.lines() {
let (expression, wire) = instruction.split_once(" -> ").unwrap();
instructions.insert(wire.to_string(), expression.to_string());
}
for wire in instructions.keys() {
set_wire(wire.to_string(), &mut wires, &instructions);
}
let new_b = wires.get("a").unwrap();
instructions.insert("b".to_string(), new_b.to_string());
let mut wires = HashMap::new();
for wire in instructions.keys() {
set_wire(wire.to_string(), &mut wires, &instructions);
}
wires
}
#[cfg(test)] #[cfg(test)]
mod tests_7 { mod tests_7 {