Skip to content

Instantly share code, notes, and snippets.

@bossek
Created December 16, 2019 15:36
Show Gist options
  • Save bossek/4cadf6698864223eecc73e070f6f75c8 to your computer and use it in GitHub Desktop.
Save bossek/4cadf6698864223eecc73e070f6f75c8 to your computer and use it in GitHub Desktop.
Advent of Code 2019 Day16
defmodule Day16 do
def part2(data) do
signal = parse(data)
signal
|> Enum.reverse()
|> Stream.cycle()
|> Stream.take(length(signal) * 10000 - offset(data))
|> Stream.iterate(fn signal -> Stream.scan(signal, &rem(&1 + &2, 10)) end)
|> Enum.at(100)
|> Stream.take(-8)
|> Enum.reverse()
|> Enum.join()
end
defp parse(data) do
data
|> String.trim()
|> String.split("", trim: true)
|> Enum.map(&String.to_integer/1)
end
defp offset(data) do
data
|> String.slice(0, 7)
|> String.to_integer()
end
end
IO.puts(Day16.part2(File.read!("data/day16.txt")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment