Day 9 Part 2
This commit is contained in:
parent
d981946a2b
commit
c51a51ab63
1 changed files with 21 additions and 1 deletions
|
|
@ -7,7 +7,7 @@ defmodule SetTools do
|
||||||
[]
|
[]
|
||||||
end
|
end
|
||||||
|
|
||||||
def combinations(list = [head | tail], size) do
|
def combinations([head | tail], size) do
|
||||||
taken = Stream.map(combinations(tail, size - 1), fn subset -> [head | subset] end)
|
taken = Stream.map(combinations(tail, size - 1), fn subset -> [head | subset] end)
|
||||||
left = combinations(tail, size)
|
left = combinations(tail, size)
|
||||||
Stream.concat(taken, left)
|
Stream.concat(taken, left)
|
||||||
|
|
@ -45,6 +45,26 @@ defmodule Day9 do
|
||||||
end)
|
end)
|
||||||
|> Enum.at(preamble_size)
|
|> Enum.at(preamble_size)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp slices(list) do
|
||||||
|
2..(length(list) - 1)
|
||||||
|
|> Stream.flat_map(fn size ->
|
||||||
|
Stream.chunk_every(list, size, 1, :discard)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
def part2 do
|
||||||
|
target = part1()
|
||||||
|
|
||||||
|
ints =
|
||||||
|
read_input()
|
||||||
|
|> parse_lines()
|
||||||
|
|> slices()
|
||||||
|
|> Enum.find(fn slice -> Enum.sum(slice) == target end)
|
||||||
|
|
||||||
|
Enum.min(ints) + Enum.max(ints)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Day9.part1() |> IO.inspect()
|
Day9.part1() |> IO.inspect()
|
||||||
|
Day9.part2() |> IO.inspect()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue