728x90
풀이 과정
1. 입력받은 충전 시간 배열을 내림차순 정렬을 시킨다.
2. 콘센트 배열을 생성시킨다.
3. 내림차순 정렬된 충전 시간을 콘센트 배열에 삽입한다.
3-1 ) 만약 콘센트 배열의 크기가 주어진 콘센트 개수(m) 보다 작을 경우 -> 콘센트 배열에 해당 time을 삽입
3-2 ) 만약 콘센트 배열의 크기가 주어진 콘센트 개수(m) 이상일 경우 -> 가장 작은 값 + 현재 time을 더해서 다시 삽입
4. 콘센트 배열에 있는 값 중 가장 큰 값을 출력한다. -> 가장 큰 값 = 시간이 가장 오래 걸린 시간 + 그보다 적은 시간들...
풀이 코드
import sys,heapq; input = sys.stdin.readline
n,m = map(int,input().split())
phone = sorted(list(map(int,input().split())) ,reverse = True)
power_socket = []
for t in phone :
if len(power_socket) < m : heapq.heappush(power_socket,t)
else : heapq.heappush(power_socket,t + heapq.heappop(power_socket))
print(max(power_socket))
'Language > Python' 카테고리의 다른 글
[Python][백준 17836][BFS] 공주님을 구해라! - 컴도리돌이 (0) | 2022.06.01 |
---|---|
[Softeer][python] 지도 자동 구축 - 컴도리돌이 (0) | 2022.05.31 |
[파이썬][백준 18430][백트래킹] 무기공학 - 컴도리돌이 (0) | 2022.05.24 |
[파이썬][백준 16198][백트래킹] 에너지 모으기 - 컴도리돌이 (0) | 2022.05.23 |
[파이썬][백준 14501][그리디] 퇴사 - 컴도리돌이 (0) | 2022.04.25 |