← 실전 문제

오늘의 대여 수익

C++디버깅

대여 시간이 free_minutes분 이하이면 요금이 없어요. 그보다 오래 빌리면 무료 시간을 제외한 나머지 시간에 대해 60분마다 fee원을 받아요. 나머지 시간이 60분보다 짧아도 한 구간의 요금을 받아요. 대여 건마다 요금을 따로 계산한 뒤 모두 더해요.

int solution(vector<int> minutes, int free_minutes, int fee)가 오늘의 총수익을 반환해야 해요. 제공된 코드에서 잘못된 한 줄만 수정해 주세요.

매개변수와 반환값

  • minutes의 길이 n은 1 이상 300 이하예요.
  • 각 대여 시간은 0 이상 10,000 이하의 정수예요.
  • 무료 시간은 0 이상 180 이하, 구간 요금은 1 이상 10,000 이하의 정수예요.
  • 반환값은 대여 요금의 합인 정수예요.

예시

  1. minutes = [30, 90, 150], free_minutes = 30, fee = 100이면 300을 반환해요. 무료 시간을 제외하면 0, 60, 120분으로, 요금은 0, 100, 200원이에요.
  2. minutes = [20, 50, 51, 110], free_minutes = 50, fee = 200이면 400을 반환해요. 앞의 두 건은 무료이며 나머지 두 건은 각각 한 구간의 요금이에요.

실행용 입출력

첫 줄에 n free_minutes fee, 둘째 줄에 대여 시간 n개를 입력해요. main은 함수 호출용 하네스이며 반환값 하나를 출력해요.

예시 입력

3 30 100
30 90 150

예상 결과

300

예시 입력

4 50 200
20 50 51 110

예상 결과

400
핵심 개념
  • array-1d: 대여 건마다 독립적으로 요금을 계산해요.
  • conditionals: 무료 대상과 유료 대상을 구분해요.
  • loops: 각 건의 요금을 누적해요.
  • stl-vector: 주어진 벡터의 크기와 인덱스로 데이터를 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기