NobbZ

NobbZ

Note by the Moderators: This topic is to talk about the Day 2 of the Advent of Code.

For general discussion about the Advent of Code 2018 and links to topics of the other days, see this topic.


This is my todays code:

I’m not quite happy with it though, but it runs in ~4ms/~8ms, so I leave it as is for now.

Showing Posts 1 to 3

sorentwo

sorentwo

Oban Core Team

I’m doing my problems in Elixir this year as well: GitHub - sorentwo/aoc_2018: Advent of Code 2018 · GitHub

My solution today seems a little different from the others I’ve seen. I made use of String.myers_difference/2 for the second part:

  def common(addresses) do
    pairings = for add_a <- addresses, add_b <- addresses, add_a != add_b, do: {add_a, add_b}

    Enum.reduce_while(pairings, nil, fn {add_a, add_b}, _ ->
      case String.myers_difference(add_a, add_b) do
        [eq: _, del: << char :: size(8) >>, ins: _, eq: _] ->
          {:halt, String.replace(add_a, IO.chardata_to_string([char]), "")}

        _ -> {:cont, nil}
      end
    end)
  end

There are two other possible edit scripts that could have matched (first character or last character being the difference), but this worked for my inputs.

yawaramin

yawaramin

I’m pretty happy with my solutions so far, especially for Day 2 Part 2 I felt I was able to take advantage of a few things, especially a comprehension to structure it nicely:

debajit

debajit

I had a lot of fun doing Day 2 Part 2.

I like how this one turned out — reasonably small and clean.

I’ve learned that finding the right functional operation (Enum.find_value in this case) really helps keep the code small (and easy to reason about). (String.myers_difference helped, of course. I wrote my first version with MapSet (and set difference and intersections), which interestingly worked for the example case, but did not work with the large input file, so I ended up using String.myers_difference)

— All posts loaded —

Where Next? Top

Trending in Challenges Top

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews