본문 바로가기

언어/Python

[파이썬] 백준 11399번: ATM

www.acmicpc.net/problem/11399

 

11399번: ATM

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

www.acmicpc.net

문제를 보게 되면 N명의 사람이 있고 사람마다 돈 뽑는 시간을 주어지게 된다. 그리고 모두가 돈을 뽑았을 때 걸리는 시간의 최소를 구하는 문제임을 알 수 있다.

알고리즘을 다음과 같이 생각해 볼 수 있었다.

1. N명의 사람의 걸리는 시간을 리스트에 저장해 줌.

2. 리스트를 정렬함으로 작은 수 부터 놔둔다

3. for문을 두번째 인덱스부터 마지막까지 돌리면서 리스트를 업데이트 한다.

  3 - 1. 자신의 앞의 값을 더한 값으로 업데이트해준다.

4. 리스트의 합을 출력한다.

 

코드는 아래와 같다.