switched to workspaces.
This should let me make a cross-day library.
This commit is contained in:
parent
1469c3a32b
commit
242989bb95
57 changed files with 156 additions and 89 deletions
48
days/day05/src/part2.rs
Normal file
48
days/day05/src/part2.rs
Normal file
|
@ -0,0 +1,48 @@
|
|||
use crate::utilities::*;
|
||||
|
||||
pub fn part2(input: &(WorkArea, Vec<Move>)) -> Vec<char> {
|
||||
let (mut work_area, moves) = input.to_owned();
|
||||
for r#move in moves {
|
||||
work_area.apply_move_cratemover9001(&r#move)
|
||||
}
|
||||
work_area
|
||||
.get_stacks()
|
||||
.iter()
|
||||
.map(|stack| stack.last().unwrap().to_owned())
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_part2() {
|
||||
let input = (
|
||||
WorkArea::new(vec![vec!['Z', 'N'], vec!['M', 'C', 'D'], vec!['P']]),
|
||||
vec![
|
||||
Move {
|
||||
to: 1,
|
||||
from: 2,
|
||||
number: 1,
|
||||
},
|
||||
Move {
|
||||
to: 3,
|
||||
from: 1,
|
||||
number: 3,
|
||||
},
|
||||
Move {
|
||||
to: 1,
|
||||
from: 2,
|
||||
number: 2,
|
||||
},
|
||||
Move {
|
||||
to: 2,
|
||||
from: 1,
|
||||
number: 1,
|
||||
},
|
||||
],
|
||||
);
|
||||
assert_eq!(part2(&input), vec!['M', 'C', 'D']);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue