[백준] 사과 담기 게임 (2828번)

단간단간·2024년 3월 26일
0

알고리즘 문제

목록 보기
11/106

출처 : https://www.acmicpc.net/problem/2828

python

def function():
    # N: 스크린 크기 / M: 바구니 크기
    N, M = map(int, input().split())

    # j: 떨어지는 사과 개수
    j = int(input())

    # 떨어지는 사과 위치 순서대로
    apple_locations = [int(input()) for _ in range(j)]

    basket_left = 1             # 바구니 왼쪽 위치
    basket_right = 1 + (M - 1)  # 바구니 오른쪽 위치

    count = 0  # 총 이동 횟수

    for apple in apple_locations:
        # 사과가 이미 바구니 위치에 있는 경우
        if basket_left <= apple <= basket_right:
            continue

        # 바구니가 사과 왼쪽에 있는 경우
        if apple < basket_left:
            diff = basket_left - apple

            basket_left -= diff
            basket_right -= diff
            count += diff

        # 바구니가 사과 오른쪽에 있는 경우
        if basket_right < apple:
            diff = apple - basket_right

            basket_left += diff
            basket_right += diff
            count += diff

    print(count)


if __name__ == "__main__":
    function()
profile
simple is best

0개의 댓글