-
11399 - ATMProgramming/BackJoon 2023. 3. 21. 08:15728x90
1) 문제 설명
ATM은 1대이고, 각 사람마다 인출하는 시간이 있음
P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2
1번째 사람은 인출하는데 3분, 두번째는 1분, 세번째는 4분....
순서대로 인출할 경우에는
1번째 사람 3분 = 3분
2번째 사람 3분 + 1분 = 4분
3번째 사람 3분 + 1분 + 4분 = 8분
4번째 사람 3분 + 1분 + 4분 + 3분 = 11분
5번째 사람 3분 + 1분 + 4분 + 3분 + 2분 = 13분
총 39분이 걸림
그러나 대기시간이 짧은 순서대로 인출을 하면 32분안에 해결이 된다
그리디 문제로 제일 짧은거부터 선택해서 나아가면 될듯 하다.
n = int(input()) lst = list(map(int, input().split())) lst.sort() time_value = 0 for i in range(n): time_value += sum(lst[0:i+1]) print(time_value)
n = int(input()) arr = list(map(int, input().split())) arr.sort() total = 0 ans = 0 for i in arr: total += i ans += total #total = reduce(lambda a, b: a+b, arr, 0) print(ans)
'Programming > BackJoon' 카테고리의 다른 글
10814 -나이순 정렬 (0) 2023.04.21 1427 - 소트인사이트 (0) 2023.04.21 2225 - 합분해 (0) 2023.03.20 1699 - 제곱수의 합 (0) 2023.03.17 2579 - 계단 오르기 (0) 2023.03.16