this repo has no description
1defmodule Solution do 2 def read(path) do 3 path 4 |> File.stream!() 5 |> Enum.map(&String.trim/1) 6 |> Enum.map(&parse/1) 7 end 8 9 defp parse(input) do 10 [spec, pass] = String.split(input, ": ", parts: 2) 11 [range, <<char>>] = String.split(spec, " ", parts: 2) 12 [min, max] = 13 range 14 |> String.split("-", parts: 2) 15 |> Enum.map(&String.to_integer/1) 16 17 {min..max, char, pass} 18 end 19 20 def validate_1({range, char, pass}) do 21 count = for <<^char <- pass>>, reduce: 0, do: (n -> n + 1) 22 23 count in range 24 end 25 26 def validate_2({a..b, char, pass}) do 27 <<char_1>> = binary_part(pass, a - 1, 1) 28 <<char_2>> = binary_part(pass, b - 1, 1) 29 30 char_1 != char_2 and char in [char_1, char_2] 31 end 32end 33 34data = Solution.read("2/input.txt") 35 36IO.inspect(Enum.count(data, &Solution.validate_1/1), label: "task 1") 37IO.inspect(Enum.count(data, &Solution.validate_2/1), label: "task 2")