백준 1932번 파이썬

iillyy·2021년 3월 15일
0

알고리즘

목록 보기
12/13
post-thumbnail


이번 문제는 저번에 풀었던 동전 0 문제와 같은 맥락의 문제입니다.

동전 0

person = int(input())       	#줄 서 있는 사람의 수
atm= list(map(int, input().split())) #사람마다 걸리는 시간
atm.sort()			#시간이 적은 순으로 정렬
minute=0			#시간 초기화

for i in range(len(atm)):	#줄 서 있는 사람의 수만큼
    minute = minute + atm[i]	#해당 사람의 시간을 더한 게 시간
    atm[i] = minute		#이전 사람 시간까지 더해야 적립된다

print(sum(atm))			#리스트에 있는 수를 다 더한다

동전 0 문제와 다른 점은 reverse() 대신 무작위로 배치된 수를
가장 작은 수부터 나열해주는 sort()를 활용했다는 것이고
전사람의 시간만큼 계속 더해주어야하기 때문에 리스트의 값들이
자꾸 변한다는 것이다.

atm[i] = minute

동전 0 문제를 풀고나서 풀어서 어렵지 않게 풀 수 있었다.

0개의 댓글