diff --git a/2022/rust/src/solutions/day11.rs b/2022/rust/src/solutions/day11.rs index 1acfc53..4cb2091 100644 --- a/2022/rust/src/solutions/day11.rs +++ b/2022/rust/src/solutions/day11.rs @@ -29,20 +29,11 @@ struct Monkey { } -#[inline(always)] -fn transfer_items(source: &mut VecDeque, destination: &mut VecDeque) { - while let Some(item) = source.pop_front() { - destination.push_back(item) - } -} - fn find_inspects(data: &Vec, rounds: i32, divide: bool) -> BinaryHeap { let mut monkeys: Vec> = data.iter().map(|m| m.items.iter().copied().collect()).collect(); let mut inspections: HashMap = HashMap::new(); let all_tests = data.iter().fold(1, |acc, next| acc * next.test); - let mut buffer_yeah: VecDeque = VecDeque::new(); - let mut buffer_nope: VecDeque = VecDeque::new(); for _ in 0..rounds { for i in 0..monkeys.len() { while let Some(old) = monkeys[i].pop_front() { @@ -55,12 +46,10 @@ fn find_inspects(data: &Vec, rounds: i32, divide: bool) -> BinaryHeap buffer_yeah.push_back(worry), - false => buffer_nope.push_back(worry), + true => monkeys[data[i].yeah].push_back(worry), + false => monkeys[data[i].nope].push_back(worry), } } - transfer_items(&mut buffer_yeah, &mut monkeys[data[i].yeah]); - transfer_items(&mut buffer_nope, &mut monkeys[data[i].nope]); } };