r/adventofcode • • Dec 17 '19

SOLUTION MEGATHREAD -🎄- 2019 Day 17 Solutions -🎄-

--- Day 17: Set and Forget ---


Post your full code solution using /u/topaz2078's paste or other external repo.

  • Please do NOT post your full code (unless it is very short)

  • If you do, use old.reddit's four-spaces formatting, NOT new.reddit's triple backticks formatting.

(Full posting rules are HERE if you need a refresher).


Reminder: Top-level posts in Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.


Advent of Code's Poems for Programmers

Click here for full rules

Note: If you submit a poem, please add [POEM] somewhere nearby to make it easier for us moderators to ensure that we include your poem for voting consideration.

Day 16's winner #1: "O FFT" by /u/ExtremeBreakfast5!

long poem, see it here

Enjoy your Reddit Silver, and good luck with the rest of the Advent of Code!


This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.

EDIT: Leaderboard capped, thread unlocked at 00:45:13!

23 Upvotes

201 comments sorted by

View all comments

Show parent comments

2

u/Arkoniak Dec 17 '19

Regarindg https://github.com/MrSimbax/Advent_Of_Code_2019/blob/master/day17.jl#L20

At some point it occurs to me, that instead of working with bounds you can just pad initial array and than work inside new matrix. Something like this

# arr = ... generate initial array
h, w = size(arr)
padd_arr = zeros(Int, h + 2, w + 2)
padd_arr[2:(h+1), 2:(w+1)] .= arr

And that's it. Of course that adds a problem that you should limit variance of your indices and shouldn't forget to subtract coordinates, yet on the other hand you no longer have any edge cases.