HiTHerE !

1461 : 도서관 본문

BOJ

1461 : 도서관

minju26 2023. 2. 13. 04:12

https://www.acmicpc.net/problem/1461

 

1461번: 도서관

세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책

www.acmicpc.net

최소 걸음 수를 계산하는 문제이고, 한번에 옮길 수 있는 책의 수가 정해져 있으므로

왕복으로 이동해야 한다는 문제가 있다. 

따라서 원래 위치가 가장 먼 책을 가장 마지막에 옮긴다면 걸음 수를 줄일 수 있다.

 

import sys

n, m = map(int, sys.stdin.readline().split())
loc = list(map(int, sys.stdin.readline().split()))
maxloc = 0
ploc = []
mloc = []

for i in (loc):
    maxloc = max(abs(i), maxloc)
    if i < 0:
        mloc.append(-i)
    else:
        ploc.append(i)

ploc.sort(reverse=True)
mloc.sort(reverse=True)

result = 0

for i in range(0, len(ploc), m):
    result += ploc[i]*2
for i in range(0, len(mloc), m):
    result += mloc[i]*2
    
print(result-maxloc)

 

'BOJ' 카테고리의 다른 글

1781 : 컵라면  (0) 2023.02.27
1715 : 카드 정렬하기  (0) 2023.02.20
1092 : 배  (0) 2023.02.20
11000 : 강의실 배정  (1) 2023.02.13
1041 : 주사위  (1) 2023.02.13