<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.19.3">
<title>HackerRank solutions — hackerrank v0.1.0</title>
<link rel="stylesheet" href="dist/html-399e30b9b028e3059575.css" />
<script src="dist/sidebar_items-4861d7f10c.js"></script>
<script async src="dist/html-399e30b9b028e3059575.js"></script>
</head>
<body data-type="extras">
<script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
<div class="main">
<button class="sidebar-button sidebar-toggle">
<span class="icon-menu" aria-hidden="true"></span>
<span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
<span class="icon-theme" aria-hidden="true"></span>
<span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">
<a href="readme.html" class="sidebar-projectLink">
<div class="sidebar-projectDetails">
<h1 class="sidebar-projectName">
hackerrank </h1>
<h2 class="sidebar-projectVersion">
v0.1.0
</h2>
</div>
</a>
<form class="sidebar-search" action="search.html">
<button type="submit" class="search-button">
<span class="icon-search" aria-hidden="true"></span>
</button>
<input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
</form>
<ul class="sidebar-listNav">
<li><a id="extras-list" href="#full-list">Pages</a></li>
<li><a id="modules-list" href="#full-list">Modules</a></li>
</ul>
<div class="gradient"></div>
<ul id="full-list" class="sidebar-fullList"></ul>
</section>
<section class="content">
<div class="content-outer">
<div id="content" class="content-inner">
<h1>HackerRank solutions <a href="https://travis-ci.org/boonious/hackerrank_elixir"><img src="https://travis-ci.org/boonious/hackerrank_elixir.svg?branch=master" alt="Build Status"/></a></h1>
<p>This repository contains some of my solutions in Elixir for various HackerRank challenges,
in particular for functional programming, algorithms and data structures. The solutions are completedly
test-driven.</p>
<h2 id="scope" class="section-heading">
<a href="#scope" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Scope
</h2>
<p>See the <a href="doc/api-reference.html">documentation</a>.</p>
<h2 id="usage" class="section-heading">
<a href="#usage" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Usage
</h2>
<p>The solutions are meant to be used as a reference only for your own studies and practices.
Please try your approach first, before comparing it with the one here.</p>
<p>To see what solutions are available and how they work, read the <a href="doc/api-reference.html">documentation</a> and
the corresponding test cases that include data input and output where suggested by
HackerRank. Running <a href="https://hexdocs.pm/mix/Mix.Tasks.Test.html"><code class="inline">mix test</code></a> would execute the solution against all the test cases.</p>
<p>You can also try out the solutions (functions)
using <a href="https://elixir-lang.org/getting-started/introduction.html#interactive-mode">interactive Elixir</a>
(invoking <code class="inline">iex -S mix</code> from software home directory).</p>
<pre><code class="nohighlight makeup elixir"><span class="w"> </span><span class="c1"># evaluating e^5, with 9 additional terms in the series</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">FP.Intro</span><span class="o">.</span><span class="n">exp</span><span class="p" data-group-id="9162924394-1">(</span><span class="mf">5.0</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p" data-group-id="9162924394-1">)</span><span class="w">
</span><span class="o">.</span><span class="o">.</span><span class="w">
</span><span class="c1"># trying out Sierpinski fractal triangle</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">FP.Recursion.Advanced</span><span class="o">.</span><span class="n">draw_triangles</span><span class="w"> </span><span class="mi">3</span><span class="w">
</span><span class="p" data-group-id="9162924394-2">[</span><span class="s">"_______________________________1_______________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"______________________________111______________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_____________________________11111_____________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"____________________________1111111____________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"___________________________1_______1___________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"__________________________111_____111__________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_________________________11111___11111_________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"________________________1111111_1111111________________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_______________________1_______________1_______________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"______________________111_____________111______________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_____________________11111___________11111_____________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"____________________1111111_________1111111____________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"___________________1_______1_______1_______1___________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"__________________111_____111_____111_____111__________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_________________11111___11111___11111___11111_________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"________________1111111_1111111_1111111_1111111________________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_______________1_______________________________1_______________"</span><span class="p">,</span><span class="w">
</span><span class="s">"______________111_____________________________111______________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_____________11111___________________________11111_____________"</span><span class="p">,</span><span class="w">
</span><span class="s">"____________1111111_________________________1111111____________"</span><span class="p">,</span><span class="w">
</span><span class="s">"___________1_______1_______________________1_______1___________"</span><span class="p">,</span><span class="w">
</span><span class="s">"__________111_____111_____________________111_____111__________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_________11111___11111___________________11111___11111_________"</span><span class="p">,</span><span class="w">
</span><span class="s">"________1111111_1111111_________________1111111_1111111________"</span><span class="p">,</span><span class="w">
</span><span class="s">"_______1_______________1_______________1_______________1_______"</span><span class="p">,</span><span class="w">
</span><span class="s">"______111_____________111_____________111_____________111______"</span><span class="p">,</span><span class="w">
</span><span class="s">"_____11111___________11111___________11111___________11111_____"</span><span class="p">,</span><span class="w">
</span><span class="s">"____1111111_________1111111_________1111111_________1111111____"</span><span class="p">,</span><span class="w">
</span><span class="s">"___1_______1_______1_______1_______1_______1_______1_______1___"</span><span class="p">,</span><span class="w">
</span><span class="s">"__111_____111_____111_____111_____111_____111_____111_____111__"</span><span class="p">,</span><span class="w">
</span><span class="s">"_11111___11111___11111___11111___11111___11111___11111___11111_"</span><span class="p">,</span><span class="w">
</span><span class="s">"1111111_1111111_1111111_1111111_1111111_1111111_1111111_1111111"</span><span class="p" data-group-id="9162924394-2">]</span></code></pre>
<p>Note: it is necessary to provide additional functional hooks
to integrate the input and output data on HackerRank
during code submission and evaluation, typically through
<a href="https://hexdocs.pm/elixir/IO.html"><code class="inline">IO</code></a> calls in a <code class="inline">Solution.main</code> function to
parse and cast multi-line data into appropriate input data types,
as well as output results to stdout.</p>
<footer class="footer">
<p>
<span class="line">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.3),
</span>
<span class="line">
designed by
<a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
</span>
</p>
</footer>
</div>
</div>
</section>
</div>
</body>
</html>