★VER2.0★DEQUE 활용★누적합★그리디알고리즘★ATM[백준 파이썬 11399번]
2023. 1. 1. 14:38
728x90
반응형
VERSION 2.0
import sys
from collections import deque
#p1 = 3 , p2 = 1 , p3 = 4 , p4 = 3, p5 =2 ==> 인출하는데 걸리는 시간
#[1,2,3,4,5] ==> 1번은 3분, 2번은 4분 , 3번은 3+1+4 = 8분 , 4번은 3+1+4+3= 11분 , 5번 13분
#3+4+8+11+13 = 15+24 = 39분
#[2,5,1,4,3] 순서 ==> 2번 1분 , 5번 1+2 =3분 , 1번 1+2+3 = 6분 , 4번 1+2+3+3 = 9
# 3번 1+2+3+3+4 = 13분 ==> 32분
#==시간이 작은거 순서대로 배열
N = int(sys.stdin.readline())
A = list(map(int,sys.stdin.readline().split(' '))) #인출하는데 걸리는 시간
A = deque(sorted(A))
B =deque()
res = 0
while len(A)>=1:
a = A.popleft()
# print(a)
res+= a
B.append(res)
print(sum(B))
==> DEQUE 활용하여 풀어보았다
VERSION 1.0
import sys
A= int(sys.stdin.readline())
B = list(map(int, sys.stdin.readline().split(' ')))
B = sorted(B , reverse = False)
#print(B)
for i in range(len(B)-1):
B[i+1] += B[i]
print(sum(B))
인출수가 적은 순서대로 하기위해 SORTED()함수 활용==> 누적합 알고리즘 활용 ==> SUM()함수 통해 구했다.
정렬알고리즘 참고
728x90
반응형
'Python(백준) > 그리디알고리즘' 카테고리의 다른 글
★sorted(a, key = lambda x : x[0])★그리디알고리즘★회의실배정[백준 파이썬 1931번] (0) | 2022.11.02 |
---|---|
★그리디알고리즘★주유소[백준 파이썬 13305번] (0) | 2022.11.01 |
★데이터타입변환map★re활용한 split()★잃어버린 괄호[백준 파이썬 1541번] (0) | 2022.11.01 |
★그리디알고리즘★ 동전 0 [백준 파이썬 11047번] (0) | 2022.11.01 |