Skip to content

Instantly share code, notes, and snippets.

@Gazler
Last active December 6, 2018 08:02
Show Gist options
  • Save Gazler/cf92c227dbeb2614a2747c5f208e203e to your computer and use it in GitHub Desktop.
Save Gazler/cf92c227dbeb2614a2747c5f208e203e to your computer and use it in GitHub Desktop.
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 abs(a-b) == 32 do
parse_polymers(rest, seen)
end
def parse_polymers(<<a, b, rest :: binary>>, seen) when abs(a-b) ==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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment