-
백준 1676번, ATM [파이썬]코딩/파이썬 2023. 4. 9. 20:23
♣문제
https://www.acmicpc.net/problem/11399
♣풀이
N = int(input()) pi = list(map(int, input().split())) # 한 줄로 입력 받은 것들을 입력 받은 동시에 리스트로 만들기 pi.sort() # 오름차순 정렬 storage = 0 # 아래 while문에서 sum에 저장된 것을 다시 저장할 때 쓰임 sum = 0 i = 0 while i < len(pi): sum = sum + pi[i] storage += sum i += 1 print(storage)
♣코멘트
문제를 보면 조금 길어서 읽기가 힘들긴 하지만 최솟값을 구할려면 오름차순으로 정렬해야 한다는 발상을 금방 생각하실 수 있을 겁니다. 앞에 오래 걸리는 사람이 있으면 뒤의 2,3,4,5 ... n번째 사람들이 모두 앞사람 만큼의 시간을 추가로 기다려야 하기 때문에 맨 앞사람이 가장 시간이 적게 걸리는 사람, 그리고 그 다음으로 적게 걸리는 사람... 순서대로 정렬 되어야 합니다. 그 뒤에는 i=0일때 pi 리스트의 0번째 수, i=1일때 pi리스트의 0번째수+1번째수 .. 이렇게 storage에 저장되고 출력하면 끝입니다. for문을 통해 출력하면 조금 더 간단하게 할 수도 있을 것 같지만 바로 생각난게 while이라 while을 이용해 보았습니다:)
'코딩 > 파이썬' 카테고리의 다른 글
백준 1357번, 뒤집힌 덧셈 [파이썬] (0) 2023.05.03 파이썬을 통해 피그라틴을 만들어보자! (0) 2023.04.12 [파이썬] 백준 1676번, 팩토리얼 0의 개수 (0) 2023.04.07 [파이썬] 백준 1526번, 가장 큰 금민수 (0) 2023.04.06