11399번 - ATM

1. ATM

A. 📜 문제

위 백준 사이트에 접속하여 문제를 확인해주세요.

B. 💡 내 답안

a. 😊 1차 시도 (성공)

"""
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. 11399번: ATM (acmicpc.net). Baekjoon. (accessed Nov 28, 2021)

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.