문제 링크
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문을 사용해줍니다.
그 다음, 보유중인 쿠폰의 개수만큼 치킨의 수와 도장의 개수를 더해주고, 남은 쿠폰과 도장만큼 치킨의 수를 더하게 반복하는 코드를 구현해줍니다.
모든 계산이 끝난 뒤에(쿠폰이 더 이상 만들어지지 않을 때까지) 먹을 수 있는 치킨의 총 마리 수를 출력합니다.
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/node.js] 1157번 단어공부 (0) | 2023.01.22 |
---|---|
[백준/python] 14724 관리자는 누구? (0) | 2023.01.22 |
[백준] #2828 사과 담기 게임 (0) | 2023.01.22 |
[백준/python] 1181 단어 정렬 (0) | 2023.01.21 |
[백준/python] 6502 동혁피자 (0) | 2023.01.21 |