diff --git a/2021/day-6/src/main.rs b/2021/day-6/src/main.rs index 24ea36a..e0f3df0 100644 --- a/2021/day-6/src/main.rs +++ b/2021/day-6/src/main.rs @@ -8,7 +8,7 @@ fn solve(raw: String) -> () { .collect::>(); let simulate = |target: u32| { - let mut fish_by_day: Vec = vec![0; 9]; + let mut fish_by_day: [u64; 9] = [0; 9]; for &fish in school.iter() { fish_by_day[fish as usize] += 1; diff --git a/2021/deno/day-6.ts b/2021/deno/day-6.ts index de341dc..e0a42fe 100644 --- a/2021/deno/day-6.ts +++ b/2021/deno/day-6.ts @@ -12,17 +12,12 @@ const simulate = (target: number) => { let day = 0; while (day < target) { - let babies = byDay[0]; + let atZero = byDay.shift(); + // keep ts happy + if (atZero == null) throw new Error("Impossible..."); - for (let i = 0; i < byDay.length; i++) { - if (i > 0) { - byDay[i - 1] = byDay[i - 1] + byDay[i]; - } - byDay[i] = 0; - } - - byDay[8] = byDay[8] + babies; - byDay[6] = byDay[6] + babies; + byDay.push(atZero); + byDay[6] = byDay[6] + atZero; day = day + 1; }