From 9e60d0e949529c1091f962d9c8cd83716fb2da01 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 8 Sep 2024 21:00:50 +0200 Subject: solution week 285-1 --- challenge-285/wambash/raku/ch-1.raku | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 challenge-285/wambash/raku/ch-1.raku diff --git a/challenge-285/wambash/raku/ch-1.raku b/challenge-285/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..dc74e10a33 --- /dev/null +++ b/challenge-285/wambash/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +multi no_connection (+@ ($from, $to)) { $to } +multi no_connection (+@routes) { + my :(@from, @to) := [Z] @routes; + + @to.first: { $_ ∉ @from } +} + +multi MAIN (Bool :test($)!) { + use Test; + is no_connection(, , ), 'A'; + is no_connection(), 'Z'; + done-testing; +} + +multi MAIN (+@routes) { + say no_connection +@routes +} -- cgit From 39a4bf3929118980e89cc48b05c7846fff5cb8ff Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 8 Sep 2024 21:03:08 +0200 Subject: solution week 285-2 -- Elixir --- challenge-285/wambash/elixir/ch-2.exs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 challenge-285/wambash/elixir/ch-2.exs diff --git a/challenge-285/wambash/elixir/ch-2.exs b/challenge-285/wambash/elixir/ch-2.exs new file mode 100644 index 0000000000..499304306b --- /dev/null +++ b/challenge-285/wambash/elixir/ch-2.exs @@ -0,0 +1,30 @@ +defmodule Change do + defp _making({0,_}),do: [1] + defp _making({_,[]}),do: [0] + defp _making({amount, [hc| coins]}) when hc > amount, do: _making({amount,coins}) + defp _making({amount, coins}) do + coins + |> Enum.flat_map(fn + x -> _making( + { + amount - x, + coins |> Enum.drop_while( & &1 > x ) + } + ) + end) + end + def making(w) do + _making(w) |> Enum.sum + end +end + +ExUnit.start() + +defmodule ChangeTest do + use ExUnit.Case + test "Change" do + assert Change.making({9,[50,25,10,5,1]}) == 2 + assert Change.making({100,[50,25,10,5,1]}) == 292 + assert Change.making({15,[50,25,10,5,1]}) == 6 + end +end -- cgit