#문제링크
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
#나의풀이
import sys
if __name__ == '__main__':
N = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))
result = []
current = 0
arr.sort()
for i in range(N):
current += arr[i]
result.append(current)
print(sum(result))
#해설
사람들이 돈을 뽑을때 각자 걸리는 시간을 더해 최소값으로 만드는 문제이다.
각자 걸리는 시간을 최소화 시켜야 한다. 가장 오래 걸리는 시간이 먼저 수행되어 뒷 사람들에 걸린시간에 더해진다면 최소값이 될 수 없다.
오름차순 정렬을 통해 걸리는 시간이 적은 순서대로 만들어주어 각 걸리는 시간을 최소로 만들어주었다.
'코딩테스트' 카테고리의 다른 글
[백준/파이썬] 1463 1로 만들기 (0) | 2022.06.08 |
---|---|
[백준/ 파이썬] 17219 비밀번호 찾기 (0) | 2022.06.08 |
[백준/ 파이썬] 11047 동전 0 (0) | 2022.06.07 |
[백준/ 파이썬] 1764 듣보잡 (0) | 2022.06.07 |
[백준/ 파이썬] 1670 나는야 포켓몬 마스터 이다솜 (0) | 2022.06.07 |