본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No.48] 상수도 요금 구하기. (물을 아껴 씁시다.) / cos pro 2급 c언어 기출 문제 5차 문제 8

by M개발자 2021. 5. 26.
반응형

5차 문제 8


문제 설명

 

상수도 요금을 계산하려 합니다. 가정용 상수도 사용요금 계산방법은 아래와 같습니다.

단계 사용량 요금
1단계 0 ~ 20 톤 430원
2단계 21 ~ 30 톤 570원
3단계 31톤 이상 840원


사용료는 사용량에 따라 단계별로 적용됩니다. 예를 들어, 물을 35톤 사용했다면 다음과 같은 방식으로 계산합니다.

* 1단계 적용 : 20톤 x 430원 = 8,600원
* 2단계 적용 : 10톤 x 570원 = 5,700원
* 3단계 적용 : 5톤 x 840원 = 4,200원 
총 사용요금 : 18,500원

상수도 사용량 usage가 매개변수로 주어질 때, 사용요금을 return 하도록 solution 함수를 작성했습니다.

그러나, 코드 일부분이 잘못되어있기 때문에 올바르게 동작하지 않으므로 한 줄만 변경해서 올바르게 동작하도록 수정하세요.

 


예시

usage return 
35 18500

수정해야 할 코드

더보기
int solution(int usage) {
    int answer = 0;

    if (usage > 30)
        answer = 20 * 430 + 10 * 570 + (usage - 20) * 840;
    else if (usage > 20)
        answer = 20 * 430 + (usage - 20) * 570;
    else
        answer = usage * 430;

    return answer;
}

수정

if (usage > 30)                                                          
        answer = 20 * 430 + 10 * 570 + (usage - 20) * 840;
        → answer = 20 * 430 + 10 * 570 + (usage - 30) * 840;

20 * 430 : 20톤의 요금 계산

10 * 570 : 10톤의 요금 계산으로 

20톤과 10톤의 요금을 구했기 때문에 usage에서 30톤을 뺀 값을 840으로 곱해야 한다. 

 

코드 해석 및 전체 코드

 

answer ) 사용 요금을 반환할 변수

 

if (usage > 30) 

usage가 30톤을 초과할 경우 1단계 계산 후 2단계 계산, 3단계 계산으로 차례대로 계산한다. 
1단계 : 20 * 430 (기준 : ~ 20톤)
2단계 : 10 * 570 (기준 : ~ 30톤) 20 + 10은 30톤으로 20톤을 초과한 만큼의 요금을 구한다.
3단계 : (usage - 30) * 840 (기준 : 31톤 ~ ) 30톤을 초과한 만큼의 요금을 구한다. 

 

else if (usage > 20)

usage가 20톤을 초과할 경우 1단계 계산 후 2단계 계산으로 차례대로 계산한다. 
1단계 : 20 * 430 (기준 : ~ 20톤)
2단계 : (usage - 20) * 570 (기준 : ~ 30톤) 20톤을 초과한 만큼의 요금을 구한다.

 

else

usage가 20톤 이하일 경우 1단계만 계산한다.
1단계 : usage * 430

 

usage는 35톤으로 

20 * 430 + 10 * 570 + (35 - 30) * 840 = 8600 + 5700 + 4200 = 18,500

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int usage) {
    int answer = 0;

    if (usage > 30)
        answer = 20 * 430 + 10 * 570 + (usage - 30) * 840;
    else if (usage > 20)
        answer = 20 * 430 + (usage - 20) * 570;
    else
        answer = usage * 430;

    return answer;
}

int main() {
    int usage = 35;
    int ret = solution(usage);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

cos pro 2급 기출문제

github

 

구름 goormedu COS PRO 2급 기출문제 - C언어

 

 

반응형

댓글