Python/백준 문제풀이

[백준 2828] 사과 담기 게임 파이썬 문제 풀이

코딩하는 친구 2023. 7. 23. 18:48

문제 풀이: 해당 문제는 3가지 경우로 나누어서 생각할 수 있다.

1. 사과가 d(현재 위치) ~ m(바구니 크기) - 1 사이에 떨어지는 경우 -> 움직일 필요가 없으므로 pass

2. 사과가 d보다 왼쪽에 있는 경우 -> 사과가 떨어지는 지점까지 바구니가 왼쪽으로 이동해야 함

3. 나머지 모든 경우 -> 현재 위치를 기준으로 m - 1이 사과가 떨어지는 지점까지 이동해야 함

n, m = map(int, input().split())
a = int(input())
apples = []
d = 1
result = 0
for _ in range(a):
    apples.append(int(input()))
for apple in apples:
    if apple >= d and apple <= d + (m - 1):
        pass
    elif d > apple:
        result += abs(apple - d)
        d = apple
    else:
        result += apple - (m - 1) - d
        d = apple - (m - 1)
print(result)