728x90

2021.11.26

백준 11399

# 11399 
N = int(input())                      # 사람의 수
P = list(map(int,input().split()))    # 인출하는데 걸리는 시간 Pi
R = [0]                               # 걸린 시간을 차례로 더한 리스트

for i in range(N):
    R.append(R[i]+min(P))             # 리스트 이전 값과 최솟값 더하기
    del P[P.index(min(P))]            # 최솟값 삭제

print(sum(R))

문제를 보면 '인출하는데 걸리는 시간'을 작은 수부터 차례로 정렬해서 더해 나가면

가장 작은 값을 얻을 수 있는 것을 알 수 있다.

 

그래서 처음에는 set() 함수를 사용할까 했는데 그러면 중복 값들이 삭제가 되니

그냥 min()으로 가장 작은 값을 불러오고 거기에 이전 최솟값들의 합을 더해줘서

각 사람들의 걸린 시간 리스트인 R을 만들어줬다.

728x90

'Algorithm' 카테고리의 다른 글

백준 9020 골드바흐의 추측_파이썬  (0) 2021.12.03
백준 2581 소수 파이썬  (0) 2021.12.02
1124_ TIL  (0) 2021.11.24
1123_ TIL  (0) 2021.11.24
1122_ TIL  (0) 2021.11.22

+ Recent posts