호두나무 공방/Exercism in Elixir

Lasagna - Exercism in Elixir

2021. 10. 17. 13:24

문제 보기

엘릭서(Elixir)를 소개할 겸, 프로그래밍 언어 학습 서비스인 Exercism(exercism.org)에서 제공하고 있는 엘릭서 연습 문제들을 조금씩 풀어 보고자 한다.

첫 문제는 몇 년 전에 처음 Exercism에서 엘릭서 연습 문제를 풀 때는 없었던 것으로, 최근에 리뉴얼을 거치면서 새롭게 추가된 듯하다. 라자냐(Lasagna)를 만드는 데에 드는 시간을 계산한다는 컨셉으로 엘릭서의 기본이자 핵심 개념 중 하나인 함수를 정의하고 호출해볼 수 있도록 하고 있다. 이것저것 요구하는 게 많아 보이지만 그리 어렵지 않게 해결할 수 있다.

defmodule Lasagna do
  def expected_minutes_in_oven do
    40
  end

  def remaining_minutes_in_oven(minutes) do
    expected_minutes_in_oven() - minutes
  end

  def preparation_time_in_minutes(num_of_layers) do
    2 * num_of_layers
  end

  def total_time_in_minutes(num_of_layers, passed_min) do
    preparation_time_in_minutes(num_of_layers) + passed_min
  end

  def alarm() do
    "Ding!"
  end
end