본문 바로가기

cospro2급/cospro_6차

2021-05-30 / 5번 문제

음료수 마시기.(빈병으로 음료수를 사세요!)

 

문제 설명

X 마트에서는 빈 병 n개와 음료수 한 병을 교환해준다.

예를 들어 현재 가진 돈이 8원, 음료수 한병은 2원이고 n이 4라면 음료수 4개를 살 수 있다. 음료수 네 개를 다 마신 후, 남은 빈 병 4개를 가져가면 음료수를 한 병 더 받을 수 있다. 따라서 8원으로는 음료수를 총 5병 마실 수 있다.

가진 돈 money, 음료수 한 병의 가격 price, 음료수 한 병과 교환하는데 필요한 빈 병의 수 n이 매개변수로 주어질 때, 마실 수 있는 총 음료수의 수를 return 하는 solution 함수를 완성한다.

 

매개변수 설명

가진 돈 money, 음료수 한 병의 가격 price, 음료수 한 병과 교환하는데 필요한 빈 병의 수 n이 매개변수로 주어진다.

  가진 돈 money는 1 이상 1000 이하인 자연수이다.

  음료수 한 병의 가격 price는 1 이상 100 이하인 자연수이다.

  음료수 한 병과 교환하는데 필요한 빈 병의 수 n은 3 이상 10 이하인 자연수이다.

 

return 값 설명

마실 수 있는 총 음료수의 수를 return 한다.

 

예시

 

예시 설명

예시 1)

현재 가진 돈이 8원, 음료수 한병은 2원이고 n이 4라면 음료수 4개를 살 수 있다. 음료수 네 개를 다 마신 후, 남은 빈 병 4개를 가져가면 음료수를 한 병 더 받을 수 있다. 따라서 8원으로는 음료수를 총 5병 마실 수 있다.

예시 2) 

  1. 6원으로 2원짜리 음료수 3개를 산다.

  2. 음료를 다 마시면 빈 병 3개가 남는다. 이중 빈뎡 두개를 가져가 새 음료수를 한 병과 교환한다.

  3. 음료를 마시면 빈 병 2개가 남는다. 이를 새 음료수 한병으로 교환한다.

따라서 총 6원으로는 음료수 5병을 마실 수 있다.

 

코드 설명

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

int solution(int money, int price, int n) {
    int answer = 0;	//마실 수 있는 음료의 수
    int empty_bottle = answer = money / price;
    while(n <= empty_bottle) {
    	empty_bottle = empty_bottle - n;
    	answer++;
    	empty_bottle++;	//자기가 가지고 있는 빈병 수 
    }

    return answer;
}

int main() {
	int money1 = 8;
	int price1 = 2;
	int n1 = 4;
	int ret1 = solution(money1, price1, n1);

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

	int money2 = 6;
	int price2 = 2;
	int n2 = 2;
	int ret2 = solution(money2, price2, n2);

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

 

empty_bottle = empty_bottle - n;

음료를 마신 후 나온 빈 병을 마트에 가져가 새 음료수로 교환하면 빈병의 수는 줄어든다. 그렇기 때문에 n을 더하는 것이 아닌 빼준다. 이때 음료수 하나를 먹었으니 answer를 더해주고 이 먹은 음료수는 빈 병이 되기 때문에 empty_bottle도 더해준다. 

 

 

 

goorm

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

www.goorm.io

 

'cospro2급 > cospro_6차' 카테고리의 다른 글

2021-05-30 / 6번 문제  (0) 2021.05.30
2021-05-30 / 7번 문제  (0) 2021.05.30
2021-05-30 / 10번 문제  (0) 2021.05.30
2021-05-29 / 8번 문제  (0) 2021.05.30
2021-05-29 / 3번 문제  (0) 2021.05.29