46 lines
1.2 KiB
Elixir
46 lines
1.2 KiB
Elixir
{:ok, content} = File.read("input-2")
|
|
content = content
|
|
|> String.split("\n", trim: true)
|
|
|> Enum.map(fn n -> String.graphemes(n) end)
|
|
|
|
count2 = 0
|
|
count3 = 0
|
|
sum2 = for line <- content do
|
|
Enum.reduce(line, %{}, fn char, acc ->
|
|
Map.put(acc, char, (acc[char] || 0)+ 1)
|
|
end)
|
|
|> Map.values
|
|
end
|
|
|
|
|
|
sum3 = for sum <- sum2 do
|
|
Enum.filter(sum, fn x -> x == 3 end) # need to split and count occurance of 2 and 3 seperately
|
|
|> (fn x -> [ 0 | x] end).() #so the accumulator starts with 0
|
|
|> Enum.reduce(fn _, acc -> acc + 1 end) #if x == 2 do acc + 1 end end)
|
|
end
|
|
|
|
sum3= sum3
|
|
|> Enum.sum
|
|
|> IO.inspect
|
|
|
|
sum2 = sum2
|
|
|> Enum.filter(fn x -> Enum.member?(x, 2) end)# need to split and count occurance of 2 and 3 seperately
|
|
|> (fn x -> [ 0 | x] end).() #so the accumulator starts with 0
|
|
|> Enum.reduce(fn _, acc -> acc + 1 end) #if x == 2 do acc + 1 end end)
|
|
|
|
sum2 = sum2
|
|
|> IO.inspect
|
|
|
|
sum1 = sum3 * sum2
|
|
IO.puts(sum1)
|
|
#IO.puts(count2)
|
|
#IO.puts(count3)
|
|
|
|
# File.stream!("input-2")
|
|
# |> Stream.map(&String.trim/1)
|
|
# |> Stream.map(fn n -> String.graphemes(n) end)
|
|
# |> Enum.reduce(%{}, fn char, acc ->
|
|
# Map.update(acc, char, 1, &(&1 + 1))
|
|
# end)
|
|
# |> IO.puts
|