본문 바로가기
Cospro 2급/C언어

[3차] 문제7. 남은 재료로 주스 만들기 답안 및 풀이

by SRin23 2021. 5. 31.

◇ 문제 설명

주스 1잔을 만드려면 사과 3개와 당근 1개가 필요합니다. 그런데 키우는 토끼에게 먹이를 주기 위해 사과와 당근 종류에 상관 없이 k개를 빼놓으려고 합니다. 주스는 최대한 많이 만들수록 좋습니다.
사과 개수 num_apple과 당근 개수 num_carrot, 토끼에게 줄 먹이 개수 k가 주어질때 주스를 최대 몇 잔 만들 수 있는지 return하도록 solution함수를 작성했습니다. 그러나 코드 일부분이 잘못되어 있기 때문에 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요

 

◇ 매개변수 설명

사과 개수 num_apple과 당근 개수 num_carrot, 토끼에게 줄 먹이 개수 k가 solution함수의 매개변수로 주어집니다.
 ▶ 사과 개수 num_apple과 당근 개수 num_carrot은 0이상 20이하인 정수입니다.
 ▶ 토끼에게 줄 먹이 개수 k는 0이상 'num_apple + num_carrot'이하인 정수입니다.

 

◇ return값 설명

주스를 최대 몇 잔 만들 수 있는지 return해주세요.

 

◇ 예시

  num_apple num_carrot k return
예시 #1 5 1 2 1
예시 #2 10 5 4 2

 

◇ 예시 설명

예시 #1
사과 2개를 먹이로 주면 사과 3개, 당근 1개가 남습니다. 남은 재료로 주스를 1잔 만들 수 있습니다.

예시 #2
사과 2개와 당근 2개를 먹이로 주면 사과 8개, 당근 3개가 남습니다. 남은 재료로 주스를 2잔 만들 수 있습니다.

 

◇ 초기 내용

[출처]goormedu COSPRO 2급 기출문제 [3차] 문제0 초기내용


◇ 답안

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

int solution(int num_apple, int num_carrot, int k) {
    int answer = 0;
    if(num_apple < 3 * num_carrot)
        answer = num_apple / 3;
    else
        answer = num_carrot;   
    num_apple -= 3 * answer;
    num_carrot -= answer;
    
    for(int i = 0; k - (num_apple + num_carrot + i) > 0; i++)
        if(i % 4 == 0)
            answer--;
    return answer;
}

int main() {
    int num_apple1 = 5;
    int num_carrot1 = 1;
    int k1 = 2;
    int ret1 = solution(num_apple1, num_carrot1, k1);
    
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);
    
    int num_apple2 = 10;
    int num_carrot2 = 5;
    int k2 = 4;
    int ret2 = solution(num_apple2, num_carrot2, k2);
    
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

 

 

◇ 답안 풀이

(※ 실행 흐름 순으로 해석됩니다.)

int solution(int num_apple, int num_carrot, int k) {
    int answer = 0;
    if(num_apple < 3 * num_carrot)
        answer = num_apple / 3;
    else
        answer = num_carrot;   


    num_apple -= 3 * answer;
    num_carrot -= answer;
    
    for(int i = 0; k - (num_apple + num_carrot + i) > 0; i++)
        if(i % 4 == 0)
            answer--;
    return answer;
}

 

◇ 실행결과

[3차] 문제7) 남은 재료로 주스 만들기 실행 결과

 

◇ 출처

https://edu.goorm.io/learn/lecture/16921/cos-pro-2%25EA%25B8%2589-%25EA%25B8%25B0%25EC%25B6%259C%25EB%25AC%25B8%25EC%25A0%259C-c%25EC%2596%25B8%25EC%2596%25B4

 

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

YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.

edu.goorm.io

 

댓글