문제📖
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F8cb367d5-91fa-480f-9d96-0c93e9cbc9c2%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-16%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.15.09.png)
풀이🙏
- 첫째 줄에 N과 M이 주어진다.
- 둘째 줄에 떨어지는 사과의 개수 j가 주어진다.
- 다음 j개 줄에는 사과가 떨어지는 위치가 순서대로 주어진다.
- 모든 사과를 담기 위해서 바구니가 이동해야 하는 거리의 최솟값을 출력한다.
- 상근이는 오락실에서 바구니를 옮기는 개노잼 게임을 한다.
- 스크린은 n칸으로 나누어져 있으며, 스크린의 아래쪽에는 m칸을 차지하는 바구니가 있다.
- 플레이어는 바구니를 왼쪽이나 오른쪽으로 이동할 수 있으며 경계를 넘어갈 순 없다.
- 가장 처음에 바구니는 왼쪽 m칸을 차지하고 있다.
코드💻
import sys
def apple_game(n,m,l):
basket = m - 1
left = 1
right = left + basket
result = 0
for x in l:
if x < left:
result += left - x
left, right = x, x + basket
elif x > right:
result += x - right
left, right = x - basket, x
return result
N, M = map(int, sys.stdin.readline().split())
j = int(sys.stdin.readline())
l = [int(sys.stdin.readline()) for i in range(j)]
print(apple_game(N,M,l))
결과😎
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fc5a92d2b-50fb-4e54-adc1-d20affc4d8ba%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-16%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.52.46.png)
출처 && 깃허브📝
boj
github