defmodule Main do def main() do a = IO.gets("") |> String.trim |> String.split IO.puts judge(count(%{}, a)) end def count(m, []) do m end def count(m, [h | t]) do new_m = case Map.has_key?(m, h) do false -> Map.put_new(m, h, 1) true -> Map.update!(m, h, fn x -> x + 1 end) end count(new_m, t) end def judge(m) do cond do Map.size(m) === 2 -> "FULL HOUSE" Map.size(m) === 4 -> "ONE PAIR" Map.size(m) === 5 -> "NO HAND" Map.values(m) |> Enum.sort === [1, 1, 3] -> "THREE CARD" true -> "TWO PAIR" end end end