트랙
/
Rust
Rust
/
연습 문제
/
조립 라인
조립 라인

조립 라인

학습 연습 문제

소개

숫자

Rust의 숫자는 크게 두 가지로 나뉘어요. 부호가 있을 수도, 없을 수도 있는 정수와 부동소수점 수예요.

정수

  • 정수: 소수점 뒤에 숫자가 없는 수(소수 부분이 없는 수)예요. 정수 타입은 양수만 저장하거나(부호 없음), 양수와 음수를 모두 저장할 수 있어요(부호 있음). 예를 들어 -6, 0, 1, 25, 976, 500000 같은 수예요.

부동소수점 수

  • 부동소수점 수: 소수점 뒤에 0개 이상의 숫자가 있는 수예요. 예를 들어 -2.4, 0.1, 3.14, 16.984025, 1024.0 같은 수예요.

숫자 타입의 이름

숫자 타입의 이름은 두 부분으로 이루어져 있어요.

  • 부호 없는 정수(u), 부호 있는 정수(i), 부동소수점 수(f) 중 무엇인지 나타내는 글자예요.
  • 그 타입의 크기를 비트 단위로 나타내는 숫자예요. 타입이 클수록 최솟값과 최댓값 사이의 범위가 넓어요. 부동소수점 수는 소수점 뒤에 표현할 수 있는 숫자도 더 많아져요.

가능한 조합은 다음과 같아요.

  • 8비트: u8, i8
  • 16비트: u16, i16
  • 32비트: u32, i32, f32
  • 64비트: u64, i64, f64
  • 128비트: u128, i128

부동소수점 수에는 32비트와 64비트 종류만 있다는 점에 주의해요.

숫자 타입 간 변환

Rust는 암시적 타입 변환을 하지 않아요. 즉, 어떤 숫자 타입을 다른 타입으로 바꾸려면 직접 명시적으로 변환해야 해요. 큰 타입에서 작은 타입으로 변환할 때(예를 들어 u64에서 u32로)는 데이터를 잃을 수 있어요. 부동소수점 수를 정수로 변환하면 소수점 뒤의 값은 반드시 잃게 되고, 사실상 내림이 돼요.

지침

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

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

  • 1에서 4: 성공률 100%.
  • 5에서 8: 성공률 90%.
  • 9와 10: 성공률 77%.

두 가지 작업이 있어요.

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

성공률을 고려해서 조립 라인의 시간당 생산량을 계산하는 메서드를 구현해요:

assembly_line::production_rate_per_hour(6)
// Returns: 1193.4

반환되는 값은 f64 타입이라는 점에 주의해요.

2. 분당 생산되는 정상 제품 수 계산하기

분당 정상 자동차가 몇 대 생산되는지 계산하는 메서드를 구현해요:

assembly_line::working_items_per_minute(6)
// Returns: 19

반환되는 값은 u32 타입이라는 점에 주의해요.

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

조립 라인 문제를 시작해 볼 준비가 됐나요?

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