본문 바로가기
알고리즘 & 자료구조/백준

백준 2828

by 신재권 2023. 7. 11.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

class Main2828 {
	//https://www.acmicpc.net/problem/2828

	public static void main(String[] args) throws Exception {
		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 left = 1;
		int right = M;

		int apple = Integer.parseInt(br.readLine());
		int answer = 0;
		for (int i = 0; i < apple; i++) {
			int pollPosition = Integer.parseInt(br.readLine());

			if (right < pollPosition) {
				//1. 떨어지는 사과 위치보다 바구니가 왼쪽에 있다면 바구니를 오른쪽으로 이동시켜야 한다.
				while (right < pollPosition) {
					right++;
					left++;
					answer++;
				}
			} else if (left > pollPosition) {
				//2. 떨어지는 사과 위치보다 바구니가 오른쪽에 있다면 바구니를 왼쪽으로 이동시켜야 한다.
				while (left > pollPosition) {
					right--;
					left--;
					answer++;
				}
			}

			//3. 떨어지는 사과 위치가 바구니의 위치와 맞다면 바구니를 이동할 필요 없다.
		}

		System.out.println(answer);
	}
}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 1343  (0) 2023.07.11
백준 14916  (0) 2023.07.11
백준 2217  (0) 2023.07.11
백준 2003  (1) 2022.09.24
백준 1300  (1) 2022.09.22