Skip to content

Instantly share code, notes, and snippets.

@Gazler
Last active December 6, 2018 08:02
Show Gist options
  • Select an option

  • Save Gazler/cf92c227dbeb2614a2747c5f208e203e to your computer and use it in GitHub Desktop.

Select an option

Save Gazler/cf92c227dbeb2614a2747c5f208e203e to your computer and use it in GitHub Desktop.

Revisions

  1. Gazler revised this gist Dec 6, 2018. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions day5.ex
    Original file line number Diff line number Diff line change
    @@ -5,11 +5,11 @@ defmodule Advent2018.Day5 do

    def parse_polymers(<<>>, acc), do: byte_size(acc)

    def parse_polymers(<<a, rest :: binary>>, <<b, seen :: binary>>) when (a-b) in [32, -32] do
    def parse_polymers(<<a, rest :: binary>>, <<b, seen :: binary>>) when abs(a-b) == 32 do
    parse_polymers(rest, seen)
    end

    def parse_polymers(<<a, b, rest :: binary>>, seen) when (a-b) in [32, -32] do
    def parse_polymers(<<a, b, rest :: binary>>, seen) when abs(a-b) ==32 do
    parse_polymers(rest, seen)
    end

  2. Gazler revised this gist Dec 5, 2018. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions day5.ex
    Original file line number Diff line number Diff line change
    @@ -4,9 +4,11 @@ defmodule Advent2018.Day5 do
    end

    def parse_polymers(<<>>, acc), do: byte_size(acc)

    def parse_polymers(<<a, rest :: binary>>, <<b, seen :: binary>>) when (a-b) in [32, -32] do
    parse_polymers(rest, seen)
    end

    def parse_polymers(<<a, b, rest :: binary>>, seen) when (a-b) in [32, -32] do
    parse_polymers(rest, seen)
    end
  3. Gazler created this gist Dec 5, 2018.
    21 changes: 21 additions & 0 deletions day5.ex
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    defmodule Advent2018.Day5 do
    def solve(input) do
    parse_polymers(input, <<>>)
    end

    def parse_polymers(<<>>, acc), do: byte_size(acc)
    def parse_polymers(<<a, rest :: binary>>, <<b, seen :: binary>>) when (a-b) in [32, -32] do
    parse_polymers(rest, seen)
    end
    def parse_polymers(<<a, b, rest :: binary>>, seen) when (a-b) in [32, -32] do
    parse_polymers(rest, seen)
    end

    def parse_polymers(<<"\n", rest :: binary>>, seen) do
    parse_polymers(rest, seen)
    end

    def parse_polymers(<<a, rest :: binary>>, seen) do
    parse_polymers(rest, <<a>> <> seen)
    end
    end