본문 바로가기
Problem Solving/Sorting

[정렬] 백준 1461번 : 도서관 / 골드 5

by ggyongi 2021. 7. 19.
반응형

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

 

1461번: 도서관

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

www.acmicpc.net

import bisect
n, m = map(int, input().split())
books = list(map(int, input().split()))
books.sort()

i = bisect.bisect_left(books, 0)
negatives = books[:i]
positives = books[i:]

answer = 0
if negatives:
    pos = 0
    while pos <= len(negatives)-1:
        if pos == 0:
            answer += (books[pos] * -1)
        else:
            answer += (books[pos] * -2)
        pos += m

if positives:
    pos = len(positives) - 1
    while pos >= 0:
        if pos == len(positives) - 1:
            answer += positives[pos]
        else:
            answer += positives[pos] * 2
        pos -= m

if negatives and positives:
    answer += min(positives[-1], -negatives[0])
print(answer)
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글