Koala - 15기/기초 알고리즘 스터디
[백준/Python3] 2828번: 사과 담기 게임
trymimi
2024. 7. 22. 03:22
https://www.acmicpc.net/problem/2828
문제풀이
-바구니의 왼쪽과 오른쪽을 따로 생각하여 움직이도록 한다. 오른쪽 보다 숫자가 크다면 움직이고, 왼쪽보다 작으면 움직이는 식으로 최소한의 움직임을 지정한다.
코드
n, m = map(int, input().split())
j = int(input())
s = 0 #누적 움직임
l = 1 #왼쪽 좌표
r = m #오른쪽 좌표
for i in range(j):
a = int(input()) #사과 위치
if a > r: #오른쪽보다 클 때
s += a - r
r = a
l = a - m + 1
elif a < l: #왼쪽보다 작을 때
s += l - a
l = a
r = l + m - 1
print(s)