Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Top-rank-per-group/Elixir/top-rank-per-group.elixir
Normal file
36
Task/Top-rank-per-group/Elixir/top-rank-per-group.elixir
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
defmodule TopRank do
|
||||
def per_groupe(data, n) do
|
||||
String.split(data, ~r/(\n|\r\n|\r)/, trim: true)
|
||||
|> Enum.drop(1)
|
||||
|> Enum.map(fn person -> String.split(person,",") end)
|
||||
|> Enum.group_by(fn person -> department(person) end)
|
||||
|> Enum.each(fn {department,group} ->
|
||||
IO.puts "Department: #{department}"
|
||||
Enum.sort_by(group, fn person -> -salary(person) end)
|
||||
|> Enum.take(n)
|
||||
|> Enum.each(fn person -> IO.puts str_format(person) end)
|
||||
end)
|
||||
end
|
||||
|
||||
defp salary([_,_,x,_]), do: String.to_integer(x)
|
||||
defp department([_,_,_,x]), do: x
|
||||
defp str_format([a,b,c,_]), do: " #{a} - #{b} - #{c} annual salary"
|
||||
end
|
||||
|
||||
data = """
|
||||
Employee Name,Employee ID,Salary,Department
|
||||
Tyler Bennett,E10297,32000,D101
|
||||
John Rappl,E21437,47000,D050
|
||||
George Woltman,E00127,53500,D101
|
||||
Adam Smith,E63535,18000,D202
|
||||
Claire Buckman,E39876,27800,D202
|
||||
David McClellan,E04242,41500,D101
|
||||
Rich Holcomb,E01234,49500,D202
|
||||
Nathan Adams,E41298,21900,D050
|
||||
Richard Potter,E43128,15900,D101
|
||||
David Motsinger,E27002,19250,D202
|
||||
Tim Sampair,E03033,27000,D101
|
||||
Kim Arlich,E10001,57000,D190
|
||||
Timothy Grove,E16398,29900,D190
|
||||
"""
|
||||
TopRank.per_groupe(data, 3)
|
||||
Loading…
Add table
Add a link
Reference in a new issue