문제 & 링크
https://www.acmicpc.net/problem/1673
풀이
!! 치킨 쿠폰과 도장을 잘 구분해야 함 !!
도장 k개 -> 치킨 쿠폰 1개 -> 치킨 한 마리 주문 -> 도장 1
1. 몇 줄을 입력받을지 모르기에 EOF (End Of File) 조건을 이용하여 while문을 만들고 입력받는다. 입력을 종료하면 cin 객체의 상태가 false가 되며 반복문을 탈출한다.
2. ans(정답), stamp(도장), coupon(쿠폰)을 각각 0, 0, n으로 초기화한다.
3. 쿠폰의 개수만큼 정답 및 도장의 개수를 늘린다. (이때 쿠폰은 모두 사용)
4. 도장을 k로 나누어 해당 몫 만큼 쿠폰을 생성하고, 나머지 개수를 저장한다.
5. 3 - 4의 과정을 쿠폰이 0개가 될 때 까지 반복한다.
코드
#include <iostream>
using namespace std;
int main() {
int n, k;
while (cin >> n >> k) {
int ans = 0;
int stamp = 0;
int coupon = n;
while (coupon) {
ans += coupon;
stamp += coupon;
coupon = stamp / k;
stamp %= k;
}
cout << ans << "\n";
}
return 0;
}
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 10773번: 제로 (0) | 2024.07.11 |
---|---|
[백준/C++] 11652번: 카드 (0) | 2024.07.09 |
[백준/Python3] 9996번: 한국이 그리울 땐 서버에 접속하지 (0) | 2024.07.08 |
[백준/Python] 2010번: 플러그 (0) | 2024.07.08 |
[백준/Python] 2839번: 설탕 배달 (0) | 2024.07.08 |