Hey Tech

Greedy알고리즘 #백준11399 #ATM | 파이썬 풀이 본문

알고리즘/문제풀이

Greedy알고리즘 #백준11399 #ATM | 파이썬 풀이

Tony Park (토니) 2021. 10. 14. 11:38
728x90
반응형

📚  문제

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

 

11399번: ATM

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

www.acmicpc.net

💡 접근법

소요시간이 가장 적은 사람을 맨 앞 순서로 보내면 해결이 가능합니다.

N명의 ATM 이용 총 시간은 각 사람마다 기다리는 시간과 소요 시간을 합한 값들을 합계하면 됩니다.

즉, 첫 번째 사람은 p1 시간이 소요되고, 두 번째 사람은 p1 + p2, ... N번째 사람은 p1 + p2 + ... pN이 소요됩니다.

따라서 N명이 모두 ATM을 이용하는 데 필요한 시간을 수식으로 나타내면 "p1*N + p2*(N-1) + ... pN*1" 입니다.

이를 반복문을 통해 사람마다 소요되는 시간을 저장한 리스트에서 인덱싱하여

기다리는 사람 수만큼을 곱하고 합계해 주면 됩니다.

💻  코드

#https://www.acmicpc.net/problem/11399
n = int(input())
p_time = list(map(int, input().split()))
p_time.sort(reverse=True)
answer = 0
for i in range(1, n+1):
    answer += i*p_time[i-1]
print(answer)

✅ 정답 확인

👨‍💻 파이썬 파일(Github)

https://github.com/park-gb/algorithm-problem-solving/blob/main/greedy/boj_11399.py

 

GitHub - park-gb/algorithm-problem-solving: 알고리즘 문제 풀이 및 정리

알고리즘 문제 풀이 및 정리. Contribute to park-gb/algorithm-problem-solving development by creating an account on GitHub.

github.com


포스팅 내용에 오류가 있거나 조언/지적/피드백 환영입니다!😄

아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.

그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)

고맙습니다.

728x90
반응형