트랙
/
Clojure
Clojure
/
연습 문제
/
자동차, 조립하자!
자동차, 조립하자!

자동차, 조립하자!

학습 연습 문제

소개

Clojure의 숫자에는 다음과 같은 것들이 있어요.

  • 정수: 소수점 뒤에 숫자가 없는 수(소수점이 없는 수)예요. 예를 들어 -6, 0, 1, 25, 976, 500000 등이 있어요.
  • 실수: 소수점 뒤에 숫자가 0개 이상 있는 수예요. 예를 들어 -2.4, 0.1, 3.14, 16.984025, 1024.0 등이 있어요.

흔히 쓰이는 숫자 타입에는 int와 float가 있어요. int는 32비트 정수이고, float는 64비트 실수예요.

산술 연산은 표준 산술 연산자로 해요. 숫자는 표준 숫자 비교 연산자(>, <, <=, >=), 같음 연산자(=), 같지 않음 연산자(not=)를 사용해 비교할 수 있어요.

이 연습 문제에서는 조건에 따라 로직을 실행해야 해요. Clojure에서 이렇게 하는 흔한 방법은 cond를 사용하는 거예요.

(cond (= x 5) "Expression to evaluate when x equals 5"
      (> x 7) "Expression to evaluate when x is greater than 7"
      :else   "Expression to evaluate in all other cases")

참고

숫자를 정확한 타입에 상관없이 비교해야 할 때는 =보다 == 연산자가 더 나을 수 있어요. 예를 들어,

(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int

Clojure의 같음 가이드에서 특히 숫자 섹션에 더 자세한 내용이 나와 있어요.

지침

이 연습 문제에서는 자동차 공장 조립 라인의 생산량을 분석하는 코드를 작성해요. 조립 라인의 속도는 0(꺼짐)부터 10(최대)까지 설정할 수 있어요.

가장 낮은 속도인 1에서는 매시간 221대의 자동차가 생산돼요. 생산량은 속도에 따라 선형으로 증가해요. 따라서 속도를 4로 설정하면 매시간 4 * 221 = 884대의 자동차를 생산해야 해요. 하지만 속도가 높아질수록 결함이 있는 자동차가 생산될 가능성도 커지고, 그런 자동차는 폐기해야 해요. 다음 표는 속도가 성공률에 어떤 영향을 주는지 보여줘요.

  • 0: 성공률 0%.
  • 1부터 4까지: 성공률 100%.
  • 5부터 8까지: 성공률 90%.
  • 9: 성공률 80%.
  • 10: 성공률 77%.

풀어야 할 과제가 두 가지 있어요.

1. 시간당 생산량 계산하기

production-rate 함수를 구현해서 성공률을 고려한 조립 라인의 시간당 생산량을 계산해요.

(production-rate 6)
;;=> 1193.4

참고로, 반환되는 값은 double이에요.

2. 분당 생산되는 작동하는 자동차 수 계산하기

working-items 함수를 구현해서 분당 몇 대의 작동하는 자동차가 생산되는지 계산해요.

(working-items 6)
;;=> 19

참고로, 반환되는 값은 int예요.

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

자동차, 조립하자! 문제를 시작해 볼 준비가 됐나요?

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