← 학습 코스

기본 구간과 추가 구간의 요금

C++완성형

헬퍼가 세는 대상을 분리해요

이전 레슨에서 반환값을 다음 함수로 연결했어요. 이번에는 같은 입력에서 서로 다른 두 결과를 얻고 합쳐요. 수량 7개 중 처음 3개와 나머지를 분리하면 개수는 3과 4예요.

min(quantity,quota)는 기본 구간 개수예요. max(0,quantity-quota)는 추가 구간 개수예요. 수량이 quota보다 적을 때 추가 구간 개수가 음수가 되지 않도록 0과 비교해요.

개수와 단가를 각각 연결해요

int firstCost = firstCount * firstPrice;
int laterCost = laterCount * laterPrice;

처음 3개가 개당 2원, 다음 4개가 개당 5원이면 비용은 6원과 20원이에요. 수량을 나눈 후 해당 구간의 단가를 곱해요.

수량이 2개라면 두 구간의 개수는 얼마일까요? 2와 0이에요. 서로 다른 단가를 써도 각 물건은 어느 구간에서든 정확히 한 번만 계산해야 해요.

직접 풀어봐요

quantity개 중 처음 quota개까지는 개당 basicPrice원이고, 나머지는 개당 extraPrice원이에요. solution(quantity, quota, basicPrice, extraPrice)이 전체 요금을 반환해요. 제공 헬퍼는 그대로 사용할 수 있어요.

quantity는 0100, quota는 120, 두 단가는 0~100이에요. 실행용 입력은 네 매개변수를 같은 순서로 쓴 한 줄, 출력은 반환값이에요. main은 입력과 출력을 맡아요.

예시 1: (7,3,2,5) → 26. 처음 세 개는 6원, 나머지 네 개는 20원이에요. 예시 2: (2,4,3,9) → 6. 기본 구간에 두 개만 있어요.

예시 입력

7 3 2 5

예상 결과

26

예시 입력

2 4 3 9

예상 결과

6
핵심 개념
  • function-design: 수량을 기본·추가 구간으로 나눠 해당 단가를 적용해요.

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

로그인하고 풀기