트랙
/
Elixir
Elixir
/
연습 문제
/
프리랜서 요율
프리랜서 요율

프리랜서 요율

학습 연습 문제

소개

정수

Elixir에는 정수와 실수, 두 가지 종류의 수가 있어요.

정수는 소수점이 없는 수예요.

integer = 3
# => 3

실수

실수는 소수점 뒤에 한 자리 이상의 숫자가 있는 수예요. 64비트 배정밀도 부동소수점 형식을 사용해요.

float = 3.45
# => 3.45

숫자 다루기

Integer와 Float 모듈에서는 이런 타입을 다루는 데 유용한 함수를 찾을 수 있어요. 기본 산술 연산자는 Kernel 모듈에 정의되어 있어요.

변환

정수와 실수는 하나의 산술 식 안에서 함께 섞어 쓸 수 있어요. 식에 실수를 사용하면 결과도 실수가 돼요.

2 * 3
# => 6

2 * 3.0
# => 6.0

하지만 나눗셈을 할 때는 정수만 사용하더라도 결과가 항상 실수가 돼요.

6 / 2
# => 3.0

실수를 정수로 변환하려면 trunc/1로 소수 부분을 버리면 돼요.

지침

이 연습 문제에서는 프리랜서가 프로젝트 매니저와 소통할 수 있도록 하는 코드를 작성해요. 일당과 월 요금을 빠르게 계산해 주는 몇 가지 도구를 만드는 것이 목표예요. 원한다면 주어진 할인을 적용할 수도 있어요.

먼저 프리랜서와 프로젝트 매니저 사이에 몇 가지 규칙을 정해요:

  • 일당은 시급의 8배예요.
  • 한 달에는 청구 가능한 날이 22일 있어요.

때로는 프리랜서가 일당에 할인을 적용하기도 해요. 예를 들어 가장 충성도 높은 고객이나 비영리 고객을 위해서요.

할인은 백분율을 나타내는 소수로 표현해요. 예를 들어 25.0은 25%예요.

1. 시급이 주어졌을 때 일당 계산하기

daily_rate라는 함수를 구현해서 시급을 매개변수로 받아 일당을 계산해요. 계약에는 하루의 청구 가능한 시간이 8시간이라고 정의되어 있어요.

FreelancerRates.daily_rate(60)
# => 480.0

반환되는 일당은 실수여야 해요.

2. 할인된 가격 계산하기

할인을 적용한 후의 가격을 계산하는 apply_discount 함수를 구현해요.

FreelancerRates.apply_discount(150, 10)
# => 135.0

반환되는 값은 항상 실수여야 하며, 어떤 방식으로도 반올림하면 안 돼요.

3. 시급과 할인이 주어졌을 때 월 요금 계산하기

monthly_rate 함수를 구현해서 할인이 적용된 월 요금을 계산해요. 이 함수는 시급과 할인율(퍼센트), 두 가지 매개변수를 받아요.

FreelancerRates.monthly_rate(77, 10.5)
# => 12130

반환되는 월 요금은 가장 가까운 정수로 올림해야 해요.

4. 예산, 시급, 할인이 주어졌을 때 온전한 근무일 수 계산하기

예산, 시급, 할인을 받아서 그 예산으로 온전히 일할 수 있는 날이 며칠인지 계산하는 days_in_budget 함수를 구현해요.

FreelancerRates.days_in_budget(20000, 80, 11.0)
# => 35.1

반환되는 일수는 소수점 첫째 자리까지 내림해야 해요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Elixir Exercism

프리랜서 요율 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Elixir 트랙을 개념 58개연습 문제 168개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.