aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-257/spadacciniweb/elixir/ch-1.exs54
-rw-r--r--challenge-257/spadacciniweb/go/ch-1.go2
2 files changed, 55 insertions, 1 deletions
diff --git a/challenge-257/spadacciniweb/elixir/ch-1.exs b/challenge-257/spadacciniweb/elixir/ch-1.exs
new file mode 100644
index 0000000000..3c795a53bc
--- /dev/null
+++ b/challenge-257/spadacciniweb/elixir/ch-1.exs
@@ -0,0 +1,54 @@
+# Task 1: Smaller than Current
+# Submitted by: Mohammad Sajid Anwar
+#
+# You are given a array of integers, @ints.
+# Write a script to find out how many integers are smaller than current i.e. foreach ints[i], count ints[j] < ints[i] where i != j.
+#
+# Example 1
+# Input: @ints = (5, 2, 1, 6)
+# Output: (2, 1, 0, 3)
+#
+# For $ints[0] = 5, there are two integers (2,1) smaller than 5.
+# For $ints[1] = 2, there is one integer (1) smaller than 2.
+# For $ints[2] = 1, there is none integer smaller than 1.
+# For $ints[3] = 6, there are three integers (5,2,1) smaller than 6.
+#
+# Example 2
+# Input: @ints = (1, 2, 0, 3)
+# Output: (1, 2, 0, 3)
+#
+# Example 3
+# Input: @ints = (0, 1)
+# Output: (0, 1)
+#
+# Example 4
+# Input: @ints = (9, 4, 9, 2)
+# Output: (2, 1, 2, 0)
+#
+
+defmodule Smaller do
+ def current(ints) do
+ Enum.map(ints, fn x -> smaller_than(x, ints) end)
+ end
+ def smaller_than(i, ints) do
+ ints
+ |> Stream.filter(fn x -> x < i end)
+ |> Enum.count()
+ end
+ def out(ints) do
+ IO.write( "(" <> Enum.join(ints, ", ") <> ") -> ")
+ IO.puts( "(" <> Enum.join( current(ints), ", ") <> ")" )
+ end
+end
+
+ints = [5, 2, 1, 6]
+Smaller.out(ints)
+
+ints = [1, 2, 0, 3]
+Smaller.out(ints)
+
+ints = [0, 1]
+Smaller.out(ints)
+
+ints = [9, 4, 9, 2]
+Smaller.out(ints)
diff --git a/challenge-257/spadacciniweb/go/ch-1.go b/challenge-257/spadacciniweb/go/ch-1.go
index 8d6dee9dd7..479bbda5f5 100644
--- a/challenge-257/spadacciniweb/go/ch-1.go
+++ b/challenge-257/spadacciniweb/go/ch-1.go
@@ -48,7 +48,7 @@ func smaller_than_current(arrInts []int) {
}
func main() {
- arrInts := []int{2, 1, 0, 3}
+ arrInts := []int{5, 2, 1, 6}
smaller_than_current(arrInts)
arrInts = []int{1, 2, 0, 3}