문제📖
풀이🙏
- 첫째 줄에 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))
결과😎
출처 && 깃허브📝
boj
github