티스토리 뷰

 

 

구름에듀 5차 8번 문제

 

 

 

 

 

 


 

 

 

 

 

 

주어진 코드

#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 - 20) * 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);
}

 

 

예시

usage return
35 26900

 

 

 

 

 

 

 

코드 문제점

if (usage > 30) answer = 20 * 430 + 10 * 570 + (usage - 20) * 840; 식을 수행할 때,
이미 1단계, 2단계를 모두 통과한 상태에서 3단계를 진행해야 하기 때문에
usage-20이 아닌 usage-(10+20) 즉,
usage-30으로 식을 수정해야 한다.


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

 

 

 

 

 

 

 

 

 

 

완성 코드

#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);
}

 

 

예시

usage return
35 18500

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

GroomEdu

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

댓글