adventofcode

git clone https://git.ce9e.org/adventofcode.git

commit
64b0ec629179a25f06c74ad089a71b5d71b2da80
parent
6f6f21d2c95f67ffbc142dcab29e0a863caf37b8
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2022-12-05 20:25
refactor

Diffstat

M 2022/05/part1.rs 18 ++++++++++--------
M 2022/05/part2.rs 18 ++++++++++--------

2 files changed, 20 insertions, 16 deletions


diff --git a/2022/05/part1.rs b/2022/05/part1.rs

@@ -1,5 +1,10 @@
    1     1 #[path = "../lib.rs"] mod lib;
    2     2 
   -1     3 fn get_int(line: &str, i: usize) -> Option<usize> {
   -1     4     let s = line.split(' ').nth(i)?;
   -1     5     return s.parse::<usize>().ok();
   -1     6 }
   -1     7 
    3     8 fn main() {
    4     9     let mut stacks: Vec<Vec<char>> = vec![];
    5    10     let mut init = false;
@@ -9,11 +14,8 @@ fn main() {
    9    14             if line.len() == 0 {
   10    15                 init = true;
   11    16             } else {
   12    -1                 if stacks.len() == 0 {
   13    -1                     let n = (line.len() + 1) / 4;
   14    -1                     for _ in 0..n {
   15    -1                         stacks.push(vec![]);
   16    -1                     }
   -1    17                 while stacks.len() * 4 < line.len() + 1 {
   -1    18                     stacks.push(vec![]);
   17    19                 }
   18    20                 for i in 0..stacks.len() {
   19    21                     let c = line.chars().nth(i * 4 + 1).unwrap();
@@ -23,9 +25,9 @@ fn main() {
   23    25                 }
   24    26             }
   25    27         } else {
   26    -1             let k = line.split(' ').nth(1).unwrap().parse::<usize>().unwrap();
   27    -1             let a = line.split(' ').nth(3).unwrap().parse::<usize>().unwrap();
   28    -1             let b = line.split(' ').nth(5).unwrap().parse::<usize>().unwrap();
   -1    28             let k = get_int(&line, 1).unwrap();
   -1    29             let a = get_int(&line, 3).unwrap();
   -1    30             let b = get_int(&line, 5).unwrap();
   29    31 
   30    32             for _ in 0..k {
   31    33                 let c = stacks[a - 1].pop().unwrap();

diff --git a/2022/05/part2.rs b/2022/05/part2.rs

@@ -1,5 +1,10 @@
    1     1 #[path = "../lib.rs"] mod lib;
    2     2 
   -1     3 fn get_int(line: &str, i: usize) -> Option<usize> {
   -1     4     let s = line.split(' ').nth(i)?;
   -1     5     return s.parse::<usize>().ok();
   -1     6 }
   -1     7 
    3     8 fn main() {
    4     9     let mut stacks: Vec<Vec<char>> = vec![];
    5    10     let mut tmp = vec![];
@@ -10,11 +15,8 @@ fn main() {
   10    15             if line.len() == 0 {
   11    16                 init = true;
   12    17             } else {
   13    -1                 if stacks.len() == 0 {
   14    -1                     let n = (line.len() + 1) / 4;
   15    -1                     for _ in 0..n {
   16    -1                         stacks.push(vec![]);
   17    -1                     }
   -1    18                 while stacks.len() * 4 < line.len() + 1 {
   -1    19                     stacks.push(vec![]);
   18    20                 }
   19    21                 for i in 0..stacks.len() {
   20    22                     let c = line.chars().nth(i * 4 + 1).unwrap();
@@ -24,9 +26,9 @@ fn main() {
   24    26                 }
   25    27             }
   26    28         } else {
   27    -1             let k = line.split(' ').nth(1).unwrap().parse::<usize>().unwrap();
   28    -1             let a = line.split(' ').nth(3).unwrap().parse::<usize>().unwrap();
   29    -1             let b = line.split(' ').nth(5).unwrap().parse::<usize>().unwrap();
   -1    29             let k = get_int(&line, 1).unwrap();
   -1    30             let a = get_int(&line, 3).unwrap();
   -1    31             let b = get_int(&line, 5).unwrap();
   30    32 
   31    33             for _ in 0..k {
   32    34                 let c = stacks[a - 1].pop().unwrap();