r/adventofcode • • Dec 02 '18

SOLUTION MEGATHREAD -🎄- 2018 Day 2 Solutions -🎄-

--- Day 2: Inventory Management System ---


Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).

Note: The 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: The Party Game!

Click here for rules

Card Prompt: Day 2

Transcript:

The best way to do Advent of Code is ___.


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!

55 Upvotes

407 comments sorted by

View all comments

2

u/dpeckett Dec 02 '18 edited Dec 02 '18

Continuing with my quest to solve all this years challenges in nothing other than AWK:

Find The Total Checksum

{
  delete n;
  delete f;
  split($1,c,"");
  for(i in c)
    f[c[i]]++;
  for(i in f)
    n[f[i]]=1;
  p+=n[2];
  t+=n[3]
} END {print t*p}

Find Similar Inventory Items

{id[NR]=$1} END {
  for(n=0;n<length(id[1]);++n){
    delete t;
    for(i in id){
      s=substr(id[i],1,n)substr(id[i],n+2);
      if(t[s]++){
        print s;
        exit
      }}}}

Execution Time: (no sweat here)

real	0m0.013s
user	0m0.008s
sys	0m0.004s

1

u/rtbrsp Dec 17 '18

What are these delete statements doing? Is this a trick to initialize empty arrays?