We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Post 25
Hacker Rank 01 - Trying to do Something Everyday
Published on: 2025-05-09
Tags:
elixir, Blog, Testing, Hacker Rank
So for Hacker Rank they make you get all the information that you will need for the examples with the STDIN or STDOUT which in Elixir is going to have to use IO So there is: IO.read() IO.gets() IO.read(:stdio, :all) IO.gets("") You will have to do some pattern matching or list work to get all the info that you will need. Like if the first param is something that tells us something about the next 2 and then after those 3 we have the full list of things to worry about we might do something like: [telling | info1 | info2 | rest] = IO.read(:stdin, :all) |> String.split("\n") |> Enum.map(fn x -> String.to_integer(x) end) Yeah its not always the best but you can get away with it if you know what you need. So for today I had these questions: 1. Create an array/list of size n defmodule Solution do def read(entered \\ "") do IO.read(:stdio, :all) |> String.trim() |> String.to_integer() end def main(entered \\ "") do integer = if entered == "" do read() else entered end Enum.map(0..integer - 1, fn digit -> digit end) end end 2. Reverse a list (to IO.puts) defmodule Solution do def read do IO.read(:stdio, :all) |> String.split("\n") |> Enum.map(fn x -> String.to_integer(x) end) end def main do list = read() |> recursive() end def recursive(list) do if list == [] do nil else [head | tail] = list recursive(tail) IO.puts(head) end end end Solution.main() 3. Sum only the odd numbers in a list and return only the final sum. defmodule Solution do def read do IO.read(:stdio, :all) |> String.split("\n") |> Enum.map(&String.to_integer(&1)) end def main do read() |> Enum.filter(fn(x) -> rem(x, 2) != 0 end) |> Enum.sum() |> IO.puts() end end Solution.main() 4. Count the size of a list without size/length. defmodule Solution do def read do IO.read(:stdio, :all) |> String.split("\n") |> Enum.reduce(0, fn _, acc -> acc + 1 end) |> IO.puts() end end Solution.read() 5. Print the Absolute value of any given integer. defmodule Solution do def main do IO.read(:stdio, :all) |> String.split("\n") |> Enum.map(&String.to_integer(&1)) |> Enum.each(fn digit -> if digit >= 0, do: IO.puts(digit), else: IO.puts(-1 * digit) end) end end Solution.main() 5. Output N lines, each containing the value of the series expansion of e^x, computed by your program. defmodule Solution do def read do IO.read(:stdio, :all) |> String.split("\n") |> Enum.filter(fn x -> x != "" end) |> Enum.map(fn x -> Float.parse(x) |> elem(0) end) end def factorial(1), do: 1 def factorial(x), do: x * factorial(x - 1) def pow(_, 0), do: 1 def pow(x, 1), do: x def pow(x, e), do: x * pow(x, e - 1) def mathematics(value) do return = Enum.map(1..9, fn x -> pow(value, x) / factorial(x) end) |> Enum.sum() return + 1 end def main do [_ | items] = read() Enum.each(items, fn digit -> IO.puts(mathematics(digit)) end) end end Solution.main()