첫번째 코드
m의 시작점과 끝점을 이용하기로 했다. 윈도우? 투포인터? 같은 느낌으로!
현대 떨어지는 곳이 m의 끝점보다 크다면 해당 차이만큼 움직이고!
현재 떨어지는 곳이 m의 시작점보다 작다면 해당 차이만큼 움직이고!
사이에 있다면 상관없음! (else 이후에 붙일 코드 없음!)
총 움직인 개수 더하기!
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
j = int(input())
apple = []
for _ in range(j):
apple.append(int(input()))
m_start = 1
m_end = 1 + (m-1)
count = 0
for i in apple:
if i > m_end:
diff = i - m_end
m_end = i
m_start = m_start + diff
count += diff
elif i < m_start:
diff = m_start - i
m_start = i
m_end = m_end - diff
count += diff
print(count)
통과!
링크
programmers/백준/Silver/2828. 사과 담기 게임 at main · ornni/programmers
repository for recording Programmers Algorithm problem solving - ornni/programmers
github.com