Koala - 9기/기초 알고리즘 스터디

[백준/C++] 1673 치킨 쿠폰

정찬영 2023. 1. 22. 16:18

문제 링크

https://www.acmicpc.net/problem/1673

 

문제

문제 해석

도장과 쿠폰을 이용해서 치킨을 몇 마리까지 먹을 수 있을지 계산하는 문제입니다.

처음 문제를 풀 때, 도장과 쿠폰의 관계를 잠시 헷갈려서 문제를 푸는데 어려움이 있었네요.

 

코드

 

#include <iostream>
#include <cstdio>
using namespace std;
int chicken, n, k, stamp = 0;

int main() {
    while (scanf("%d %d", &n, &k) != EOF) {
        chicken = 0;
        stamp = 0;

        while (1) {
            chicken += n;
            stamp += n;
            n = 0;
            n += stamp / k;

            stamp = stamp % k;

            if (n == 0) {
                break;
            }

        }
        cout << chicken << endl;
    }

    return 0;
}

문제 풀이

먼저, n과 k를 입력받을 때마다 계산을 수행할 수 있도록 while문을 사용해줍니다. 

그 다음, 보유중인 쿠폰의 개수만큼 치킨의 수와 도장의 개수를 더해주고, 남은 쿠폰과 도장만큼 치킨의 수를 더하게 반복하는 코드를 구현해줍니다.

모든 계산이 끝난 뒤에(쿠폰이 더 이상 만들어지지 않을 때까지) 먹을 수 있는 치킨의 총 마리 수를 출력합니다.