공부, 기록

백준 1461. 도서관 파이썬(PYTHON) 본문

코딩

백준 1461. 도서관 파이썬(PYTHON)

무는빼주세요 2020. 11. 14. 14:29

문제링크 : www.acmicpc.net/problem/1461

 

1461번: 도서관

첫째 줄에 책의 개수 N과, 세준이가 한 번에 들 수 있는 책의 개수 M이 주어진다. 둘째 줄에는 책의 위치가 주어진다. N은 10,000보다 작거나 같은 자연수이고, M은 10,000보다 작거나 같다. 책의 위치

www.acmicpc.net

 

def solution(N,M,booklist):
    booklist.sort()
    leftlist=list()
    rightlist=list()
    sumlen=0
    highlen = max(max(booklist),min(booklist)*-1)
    for i in booklist:
        if i < 0:
            leftlist.append(i*-1)
        else:
            rightlist.append(i)
    leftlist.sort()
    rightlist.sort()
    while leftlist:
        sumlen+=leftlist[-1]
        for i in range(M):
            if leftlist:
                leftlist.pop()
    while rightlist:
        sumlen+=rightlist[-1]
        for i in range(M):
            if rightlist:
                rightlist.pop()

    sumlen=sumlen*2-highlen

    return sumlen

def main():
    N, M = map(int, input().split())
    booklist = list(map(int, input().split()))
    print(solution(N,M,booklist))

main()