본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[백준] 11399. ATM - Python

by chaemj97 2022. 6. 22.
728x90

https://www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net


  • 생각
    • i번 사람은 1~(i-1)번 사람의 돈 인출 시간만큼 대기해야함
      • 앞 사람의 인출 시간이 적을수록 전체 인출 시간이 줄어듬
    • 1번사람의 인출을 (N-1)명이 기다림
    • i번 사람의 인출을 (N-i)명이 기다림
  • 코드
from sys import stdin

input = stdin.readline
# 사람의 수
N = int(input())
# 각 사람이 돈을 인출하는데 걸리는 시간
P = list(map(int,input().split()))

P.sort()

time = 0
for idx,pi in enumerate(P):
    time += pi * (N - idx)

print(time)
728x90
반응형

댓글