[파이썬/Python] 백준 11399 - ATM

김경훈·2023년 11월 30일
0

Python / Algorithm

목록 보기
3/4
post-thumbnail

https://www.acmicpc.net/problem/11399
난이도 - 실버 4
알고리즘 분류 - 그리디 알고리즘, 정렬


정답 코드

n = int(input())
waiting = list(map(int, input().split()))

sum = 0
result = 0

waiting.sort()

for i in waiting:
    sum += i
    result += sum

print(result)

해설

줄을 선 사람들의 기다리는 시간이 최소가 되도록 하는 문제 입니다. 쉽게 말해 누적 합이 가장 적은 경우를 구하는 문제 입니다. 따라서 오름차순으로 정렬하고, 합을 구하면 됩니다.

  1. 줄을 서는 인원과 각 인원의 대기시간을 입력 받습니다.
n = int(input())
waiting = list(map(int, input().split()))
  1. 현재 인원까지의 합(sum)과 누적 합(result)을 따로 입력할 수 있도록합니다.
sum = 0
result = 0
  1. 대기 시간이 작은 순서대로 배열 합니다.
waiting.sort()
  1. for문을 통해 현재 인원까지의 대기시간과 누적 대기 시간을 구합니다.
for i in waiting:
	sum += i
    result += sum
  1. 최종 결과를 출력합니다.
print(result)
profile
Cloud & DevOps

0개의 댓글

관련 채용 정보