백준 11399 Python

Heejun Kim·2022년 5월 24일
0

Coding Test

목록 보기
13/51

문제: https://www.acmicpc.net/problem/11399
해당 문제는 별다른 어려움 없이, 지문에 정답이 나와있어 그대로 구현해 주었다.
소요시간이 제일 적은 사람 순으로 돈을 인출하는 시간을 정렬한 뒤, 각 자리에 사람이 인출하기까지 걸리는 시간을 구해 준 뒤 더하면 된다.
답을 구하는 과정에서 모든 사람이 인출하는데 걸린 총 소요시간의 합과 각 사람이 인출하는데 걸린 시간을 따로 변수에 담아주어 반복문 한번에 끝내도록 구현했다.

import sys
input = sys.stdin.readline

N = int(input())
P = list(map(int, input().split()))
P.sort()

answer = 0
pre = 0

for i in range(N):
    # i번째 사람이 지금까지 기다린 시간
    wait = pre + P[i]
    # 지금까지 기다린 사람들의 총 시간합
    answer += wait
    # 이전 사람이 기다린 시간
    pre += P[i]

print(answer)

0개의 댓글