Baekjoon Online Judge
문제
강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환할 수 있다.
강민이가 지금 갖고 있는 치킨 쿠폰으로 치킨을 최대 몇 마리나 먹을 수 있는지 구하여라. 단, 치킨을 주문하기 위해서는 반드시 치킨 쿠폰을 갖고 있어야 한다.
입력
여러 줄에 걸쳐서 자연수 n과 k가 주어진다.
출력
각 입력마다 한 줄에 정답을 출력한다.
제한
- 1 < k ≤ n ≤ 1,000,000,000
예제 입력 | 예제 출력 |
4 3 10 3 100 5 |
5 14 124 |
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt(); // 치킨 한 마리를 주문할 수 있는 치킨 쿠폰의 수
int k = in.nextInt(); // 도장을 k개 모으면 치킨 쿠폰 한 장
int count = 0; // 치킨의 수
int stamp = 0; // 도장의 수
while (true) {
count += n;
stamp += n;
n = stamp / k;
stamp %= k;
if (n == 0) break;
}
// 출력
System.out.println(count);
}
}
}
치킨 쿠폰을 사용한 만큼 도장의 수가 증가하고, 그 도장의 수가 k를 넘어가면 치킨 쿠폰을 하나씩 받는다. 이 과정을 반복해서 count를 증가시키고, 만약 도장을 쿠폰으로 바꾸는 부분을 실행했는데도 쿠폰(n)이 0이면 반복을 종료하고 count를 출력했다.
'백준 > JAVA' 카테고리의 다른 글
[Baekjoon/JAVA] 1718번 - 암호 (1) | 2023.01.21 |
---|---|
[Baekjoon/JAVA] 1681번 - 줄 세우기 (0) | 2023.01.20 |
[Baekjoon/JAVA] 15829번 - Hashing (0) | 2023.01.18 |
[Baekjoon/JAVA] 1672번 - DNA 해독 (1) | 2023.01.17 |
[Baekjoon/JAVA] 1668번 - 트로피 진열 (0) | 2023.01.16 |