[백준] 11399 (실버4)

zunzero·2022년 8월 11일
0

알고리즘(파이썬)

목록 보기
15/54

순서가 뒤로 갈수록 인출 시간은 누적된다.
총 인출 시간이 최소가 되게 하도록 하는 문제이다.
문제에서 제시하듯, 누적 합이 최소가 되는 방법은 인출 시간이 가장 짧은 사람부터 돈을 인출하게 하는 것이다.
따라서 이는 간단한 정렬 문제이다.

count = int(input())
p = list(map(int, input().split()))
p.sort()

result = 0

for i in range(count):
    for j in range(i + 1):
        result += p[j]

print(result)

이중 반복문을 사용한 이유는 단순히 배열의 합을 구하는 것이 아니라,
1 + (1+2) + (1+2+3) + ... 과 같이 앞서 계산값이 뒤의 계산에도 계속 필요하기 때문이다.

profile
나만 읽을 수 있는 블로그

0개의 댓글