728x90
https://www.acmicpc.net/problem/11399
❗ 문제 분석
P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 일 경우, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다. 4번 사람은 3+1+4+3 = 11분, 5번 사람은 3+1+4+3+2 = 13분이 걸리게 된다. 이 경우에 각 사람이 돈을 인출하는데 필요한 시간의 합은 3+4+8+11+13 = 39분이 된다.
각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램
- 걸리는 시간 : [3 1 4 3 2] 일 경우
- 3 : 3분
- 3+1 : 4분
- ...
- 3+1+4+3+2 : 13분
3+4+8+11+13 = 39분
- 걸리는 시간 : [1 2 3 3 4]
- 1 : 1분
- 1+2 : 3분
- ...
- 1+2+3+3+4 : 13분
1+3+6+9+13 = 32분
오름차순으로 정렬후 덧셈하는 것이 최솟값 구하는 방
💫 코드 분석
- 최솟값으로 구해야 하기 때문에 걸리는 시간을 오름차순으로 정렬 후 코드수행
- n = int(input()) 으로 n 값 받기
- time.sort() 오름차순으로 정렬
- for x in range(1,n+1):
- answer += sum(time[0:x]) # 리스트의 0번째 수부터 x 번째 수까지 더해줌
정해진 범위대로 넣은 값을 다 더하는 함수로 answer 값 갱신
✔️ 코드
n = int(input())
time = list(map(int,input().split()))
time.sort()
answer =0
for x in range(1,n+1):
answer += sum(time[0:x]) # 리스트의 0번째 수부터 x 번째 수까지 더해줌
print(answer)
'Python > 백준' 카테고리의 다른 글
#16 [백준/python] 1541번: 잃어버린 괄호 (0) | 2023.10.23 |
---|---|
#15 [python] 2457번: 공주님의 정원 (0) | 2023.10.22 |
#13 [python] 1026번: 보물 (0) | 2023.10.21 |
#12 [python] 2217번: 로프 (0) | 2023.10.19 |
#11 [python] 1931번: 회의실 배정 (0) | 2023.10.19 |