문제 설명
학교 앞 카페에서 아메리카노를 한 잔을 사면 쿠폰을 한 장 받을 수 있다.
이 쿠폰은 카페에서 요구하는 필요 개수(N)를 채우면 아메리카노 한잔으로 다시 교환 할 수 있다.
그런데 이 가게는 특이하게도 쿠폰을 모아 아메리카노로 교환할 때에도 쿠폰을 또 한 장 준다.
현재 영일이가 가진 쿠폰의 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)가 입력되면, 최대한 먹을 수 있는 아메리카노의 개수를 계산하는 프로그램을 작성하시오.
입력
현재 영일이가 가진 쿠폰 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)이 공백으로 구분되어 입력된다.
(1<= K <= 2,000), (1 < N < 1000)
출력
영일이가 먹을 수 있는 최대 아메리카노 개수를 출력한다.
입력 예시
10 3
출력 예시
4
나의 코드
#include <stdio.h>
int main()
{
int a, b; // 변수 선언
int temp=0;
scanf("%d %d", &a, &b); // 입력받음
while(a>=b) // a가 b보다 크거나 같으면 반복
{
temp +=1; // 커피 추가
a -= b - 1; // 쿠폰 계산
}
printf("%d", temp); // 출력
return 0;
}
모범 답안
#include <stdio.h>
int main()
{
int me, need, remain, cnt = 0;
scanf("%d %d", &me, &need);
cnt = me / need;
remain = me % need + cnt;
while ( remain >= need )
{
cnt += remain / need;
remain = remain % need + remain / need;
}
printf("%d", cnt);
return 0;
}
'알고리즘 공부 > CodeUp 문제풀이' 카테고리의 다른 글
코드업 1602:절대값 함수(C) (0) | 2023.10.14 |
---|---|
코드업 1291:바이러스 백신(C) (2) | 2023.10.13 |
코드업 2603:성적 그래프 출력하기(C) (0) | 2023.10.11 |
코드업 2318:산딸기 정렬1(C) (0) | 2023.10.10 |
코드업 기초 배열연습 1476:2차원 배열 빗금 채우기 3-1 (2) | 2023.10.08 |