오늘은 간단한 Greedy 알고리즘으로 풀이 가능한 백준 ATM 문제를 풀어보았습니다.
https://www.acmicpc.net/problem/11399
1
2
3
4
5
6
7
8
9
10
11
12
13
|
N = int(input())
p = list(map(int, input().split()))
p.sort()
total_delay = 0
for i in range(N):
temp = p[i]
p[i] = total_delay + temp
total_delay += temp
print(sum(p))
|
cs |
돈을 인출하는데 걸리는 시간이 적은 사람이 먼저 돈을 인출할수록
총 걸리는 시간이 작아집니다.
따라서 돈을 인출하는 시간에 대해서 오름차순 정렬 후
걸리는 시간을 누적하여 모두 더해줍니다.
for문 이후 p 리스트에는 인당 인출하는데 걸리는 시간이 저장됩니다.
728x90
'난 이 분야 전문가야! > Algorithm' 카테고리의 다른 글
[C#] 선형 자료구조 (Array, Dynamic Array, Linked List) (0) | 2024.05.20 |
---|---|
[백준][python] 12904 A와 B - 풀이공유 (0) | 2021.06.23 |
프로그래머스 :: 종이접기 - python 풀이 공유 (0) | 2020.07.25 |
프로그래머스 :: 쇠막대기 - python 풀이 공유 (0) | 2020.07.18 |
프로그래머스 :: 스킬트리 - c++ 풀이 공유 (0) | 2020.07.17 |