입력 : 첫째 줄 - 나누어진 스크린 N칸 / M칸을 차지하는 바구니 (1 ≤ M < N ≤ 10)
둘째 줄 - 떨어지는 사과의 개수 J (1 ≤ J ≤ 20)
셋째 줄부터 - 사과가 떨어지는 위치
출력 : 모든 사과를 담기 위해서 바구니가 이동해야 하는 거리의 최솟값 result
O(N)
그리디
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int J = sc.nextInt();
int start = 1;
int end = M;
int result = 0;
for (int i = 0; i < J; i++) {
int apple = sc.nextInt();
if (start > apple) { //왼쪽으로 이동
result += start - apple;
end -= start - apple;
start = apple;
} else if (end < apple) { //오른쪽으로 이동
result += apple - end;
start += apple - end;
end = apple;
}
}
System.out.print(result);
}
}