[알고리즘 문제풀이] 도서관

황인권·2023년 4월 13일
0

알고리즘 문제풀이

목록 보기
49/81

문제 제목 : 도서관

문제 난이도 : 중

문제 유형 : 그리디, 정렬, 탐욕 알고리즘

https://www.acmicpc.net/problem/1461
시간 제한 : 2초
메모리 제한 : 128MB

문제풀이 아이디어

< 소스코드 >

n, m = map(int, input().split(' '))
array = list(map(int, input().split(' ')))

# 0을 기준으로 분류하기 위해서
positive = []
negative = []
result = 0

largest = max(max(array), -min(array))

array.sort()

for i in array:
    if i > 0:
        positive.append(i)
    else:
        negative.append(-i)
# 양수쪽
for i in range(len(positive) - 1, -1, -m):
        result += positive[i]
# 음수쪽         
for i in range(0, len(negative), m):
    result += negative[i]
    
print(result * 2 - largest)
profile
inkwon Hwang

0개의 댓글