문제
https://www.acmicpc.net/problem/2828
2828번: 사과 담기 게임
상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M<N) 플레이어는 게임을 하는 중에 바구니를
www.acmicpc.net
풀이
n,m = map(int,input().split())
apple = int(input())
m-=1 # 이후 계산을 편하게 하기 위해서 바구니 크기를 -1 해준다
left = 1 # 바구니 왼쪽 위치
right = left + m # 바구니 오른쪽 위치
answer=0
for _ in range(apple):
tmp = int(input())
if left <= tmp <= right: # 사과가 바구니 범위 안에 속하면
continue
elif left > tmp: # 사과가 바구니보다 왼쪽에 떨어지면
answer+= left - tmp # 왼쪽으로 이동한 거리만큼 답을 더해준다
left = tmp # 왼쪽으로 이동
right = left + m # 왼쪽으로 이동
elif right < tmp: # 사과과 바구니보다 오른쪽에 떨어지면
answer += tmp - right # 오른쪽으로 이동한 거리만큼 답을 더해준다
right = tmp # 오른쪽으로 이동
left = right - m # 오른쪽으로 이동
print(answer)
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #2109 - 순회강연 (0) | 2022.05.23 |
---|---|
[Python] 백준 #4659 - 비밀번호 발음하기 (0) | 2022.05.23 |
[Python] 백준 #1992 - 쿼드트리 (0) | 2022.05.23 |
[Python] 백준 #2529 - 부등호 (2) | 2022.05.16 |
[Python] 백준 #14620 - 꽃길 (0) | 2022.05.16 |