이론
📖 삽입정렬
📖 퀵정렬
📖 병합정렬
📖 기수정렬
문제풀이
📖 백준 11399 (🔗백준 11399 문제)
✏ 그리디 방식.
✏ 정렬사용.
시간의 합이 최소가 되려면, 각 사람이 돈을 인출하는 데 필요한시간이 최소가 되어야한다.
각 사람이 돈을 인출하는 데 필요한 시간이 최소가 되려면, 인출시간이 가장 적게 걸리는 사람이 먼저 인출할 수 있도록 해야된다.
따라서, 정렬을 사용한 후 시간의 합을 구하면 각 사람이 돈을 인출하는 데 필요한 시간의 합의 최솟값을 구할 수 있다.
# 그리디방식
# 시간의 합이 최소가 되려면, 각 사람이 돈을 인출하는 데 필요한시간이 최소가 되어야한다.
# 각 사람이 돈을 인출하는 데 필요한 시간이 최소가 되려면, Pi가 오름차순으로 정렬을 이루어야 한다.
import sys
input=sys.stdin.readline
n=int(input())
time=list(map(int,input().split()))
sum=0
sumlist=[]
sum2=0
time.sort()
for i in time:
sum=sum+i
sumlist.append(sum)
for i in sumlist:
sum2=sum2+i
print(sum2)
❗ 병합정렬 - 투 포인터 개념 사용.
❗ 기수정렬 - 10개의 큐 사용.
◼ 참고사항