https://www.acmicpc.net/problem/2828
문제풀이
-바구니의 왼쪽과 오른쪽을 따로 생각하여 움직이도록 한다. 오른쪽 보다 숫자가 크다면 움직이고, 왼쪽보다 작으면 움직이는 식으로 최소한의 움직임을 지정한다.
코드
n, m = map(int, input().split())
j = int(input())
s = 0 #누적 움직임
l = 1 #왼쪽 좌표
r = m #오른쪽 좌표
for i in range(j):
a = int(input()) #사과 위치
if a > r: #오른쪽보다 클 때
s += a - r
r = a
l = a - m + 1
elif a < l: #왼쪽보다 작을 때
s += l - a
l = a
r = l + m - 1
print(s)
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 10773번: 제로 (0) | 2024.07.24 |
---|---|
[백준/python3] 1673번 치킨 쿠폰 (0) | 2024.07.22 |
[백준/Python3] 14935번: FA (0) | 2024.07.22 |
[백준/python3] 9226번 도깨비말 (0) | 2024.07.21 |
[백준/Python] 3059번: 등장하지 않는 문자의 합 (0) | 2024.07.21 |