문제
랑이 집사는 고양이들이 좋아한다는 캣닢을 직접 재배하려고 한다.
일직선으로 놓여진 N개의 화분에 캣닢이 하나씩 심어져 있다.
각 화분은 초기에 K만큼의 수분을 머금고 있고, 매일 아래와 같은 일이 순서대로 일어난다.
- 랑이 집사가 연속된 A개의 화분에 물을 준다. 이 때 물을 준 화분의 수분은 B만큼씩 증가한다.
- 모든 화분의 수분이 1씩 감소한다.
- 수분이 0이 된 화분에 있는 캣닢은 죽는다.
모든 캣닢이 살아 있는 기간이 최대한 길어지도록 물을 줄 때, 첫 캣닢이 죽는 날짜를 출력하는 프로그램을 작성하시오. 첫 날은 1일이다.
해설
이 문제는 어려울 것 없이 문제에서 주어진 순서대로 구현해내면 되는 문제입니다.
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static StringBuilder sb = new StringBuilder("");
static int N, K, A, B, ans = 1;
static int[] pots;
static void input() throws IOException {
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
A = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
pots = new int[N];
Arrays.fill(pots, K);
}
static void process(){
int index = 0;
while(true){
for(int i=index; i<index+A; i++) pots[i%N] += B;
for(int i=0; i<N; i++){
if(--pots[i] == 0){
System.out.println(ans);
return;
}
}
ans += 1;
index = (index+A)%N;
}
}
public static void main(String[] args) throws IOException{
input();
process();
}
}
<링크>
반응형
'백준' 카테고리의 다른 글
백준 / BOJ / 1439 / 뒤집기 (0) | 2021.11.19 |
---|---|
백준 / BOJ / 2143 / 두 배열의 합 (0) | 2021.11.13 |
백준 / BOJ / 3020 / 개똥벌레 (0) | 2021.11.11 |
백준 / BOJ / 1707 / 이분 그래프 (0) | 2021.11.10 |
백준 / BOJ / 10211 / Maximum Subarray (0) | 2021.11.08 |
댓글