forDevLife
[백준] 2828 - 사과 담기 게임 본문
- 바구니 길이가 1일 경우, state 하나만 이용해서 처리한다.
- 바구니 길이가 2 이상일 경우, state1(맨 앞부분) / state2(맨 뒷부분)을 계산한다.
- 다음 계산될 사과 위치에 따라서 state1, state2를 가변하여 사용하며 result를 계산한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(br.readLine());
int[] arr = new int[j];
for (int i = 0; i < j; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
int state = 1;
int state1 = 1;
int state2 = M;
int result = 0;
for (int i = 0; i < j; i++) {
if (M == 1) {
result += Math.abs(arr[i] - state);
state = arr[i];
} else {
if (arr[i] > state2) {
result += Math.abs(arr[i] - state2);
state2 = arr[i];
state1 = state2 - M + 1;
}
if (arr[i] < state1) {
result += Math.abs(arr[i] - state1);
state1 = arr[i];
state2 = state1 + M - 1;
}
}
}
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
[백준] 17224 - APC는 왜 서브태스크 대회가 되었을까? (0) | 2021.06.13 |
---|---|
[백준] 2839 - 설탕 배달 (0) | 2021.06.11 |
[백준] 14659 - 한조서열정리하고옴ㅋㅋ (0) | 2021.06.09 |
[백준] 11034 - 캥거루 세마리 2 (0) | 2021.06.09 |
[백준] 2720 - 세탁소 사장 동혁 (0) | 2021.06.09 |
Comments