2828번: 사과 담기 게임
상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M<n) 플레이어는="" 게임을="" 하는="" 중에="" 바구니를="" <="" p=""> </n)>
www.acmicpc.net
문제풀이:
사과가 순서대로 떨어지면.. 그냥 단순하게 계산하면 풀 수 있는 문제일 것 같다.
left와 right를 각각 정하고 범위 안에 들어오지 않는 경우에 칸 수를 계산하여 정답에 더하고 위치를 다시 조정해주었다.
import sys
N, M = map(int, sys.stdin.readline().split())
j = int(sys.stdin.readline())
location = []
for _ in range(j):
location.append(int(sys.stdin.readline()))
left = 1
right = M
ans = 0
for i in location:
if (left<=i) and (right>=i):
continue
elif (right<i):
ans += i-right
left += i-right
right += i-right
elif (left>i):
ans += left-i
right -= left-i
left -= left-i
print(ans)
'알고리즘💻 > 그리디' 카테고리의 다른 글
BOJ 1071번: 소트 (0) | 2021.04.06 |
---|---|
BOJ 1758번: 알바생 강호 (0) | 2021.04.06 |
BOJ 19639번: 배틀로얄 (0) | 2021.01.16 |
BOJ 13904번: 과제 (0) | 2021.01.16 |
BOJ 12931번: 두 배 더하기 (0) | 2021.01.16 |