# 11399번 - ATM

- Author: @mildsalmon
- Published: 2021-11-28
- Updated: 2021-11-28
- Source: http://blex.me/@mildsalmon/11399%EB%B2%88-atm
- Tags: 파이썬, 알고리즘, 코딩테스트, 문제, 그리디, 백준

---

# 1. ATM

- 난이도
	- 실버 3
- 시간 제한
	- 1초
- 메모리 제한
	- 256 MB
- 출처
	- [11399번: ATM (acmicpc.net)](https://www.acmicpc.net/problem/11399)

### A. 📜 문제

위 백준 사이트에 접속하여 문제를 확인해주세요.
	
### B. 💡 내 답안

##### a. 😊 1차 시도 (성공)

```python

"""
Date    : 2021.11.28
Update  : 2021.11.28
Source  : 11399.py
Purpose : CPU Scheduling 중 SJF가 떠올랐다.
Author  : 김학진 (mildsalmon)
Email   : mildsalmon@gamil.com
"""

# 운영체제 과목 - CPU Scheduling
# 문제를 읽어보고 `비선점 최소작업 우선 스케줄링 (SJF)`가 떠올랐다.
# 단, 새로운 프로세스가 특정 시간에 프로세스가 들어오는 것이 아닌,
# 0초(초기)에 프로세스가 전부 들어오고 cpu burst time을 확인하고, 짧은 작업부터 시작한다.

n = int(input())

array = list(map(int, input().split()))

# 최소작업부터 시작해야하므로, 오름차순으로 정렬한다.
array.sort()

# wait time을 따로 저장하고 누적합을 진행한다.
wait_time = 0
answer = 0

for p in array:
    wait_time += p
    answer += wait_time

print(answer)

```

##### c. 🙄 회고

> 내 풀이

- 문제를 읽다보니 최근에 공부한 CPU Scheduling이 떠올랐다.

### C. 🧐 문제 해설

> 이해한 내용을 바탕으로 작성했습니다.

SJF는 프로세스가 종료된 시점에 존재하는 프로세스들의 CPU burst time을 확인하고 가장 짧은 작업부터 CPU에 할당된다.

이를 고려하여 코드를 작성하면 된다.

# 참고문헌

[baekjoon](https://www.acmicpc.net/user/baekjoon). [11399번: ATM (acmicpc.net)](https://www.acmicpc.net/problem/11399). Baekjoon. (accessed Nov 28, 2021)
