문제
당신은 FCFS(First-Come, First-Served)의 규칙에 따라 요청된 일을 처리하는 서버를 담당하게 되었다. 매일, 당신은 일을 처리하기 위해 최대 T분 동안 서버에 시간을 할당할 수 있다. 당신은 오늘 주어진 시간동안 몇개의 일이 완료될 수 있는지 알고싶다.
예시를 들어보겠다. T = 180이고, 요청된 일들의 수행시간이 요청된 순으로 각각 45, 30, 55, 20, 80, 20분이다. 그러면, 단 4개의 일만이 완료될 수 있다. 처음 4개의 일의 수행시간은 150분으로 주어진 시간 내에 완료될 수 있지만, 처음 5개의 일의 수행시간은 230분으로 주어진 시간 180분보다 크기 때문에 완료될 수 없다. 처음 4개의 일을 수행한 뒤 6번째의 일을 수행해도 T를 초과하지 않지만 5번째 일을 수행할 수 없기 때문에 6번째 일을 수행할 수 없음을 참고해라.
입력
첫 줄은 두 정수 n과 T이며 (1 ≤ n ≤ 50, 1 ≤ T ≤ 500) n은 일의 개수를 나타낸다. 두 번째 줄은 n개의 100 이하인 자연수가 입력되며, 입력된 각 일의 수행 시간을 나타낸다.
출력
일이 First-come, First-served 규칙에 따라 처리될 때, T분 안에 완료될 수 있는 일들의 개수를 출력하라.
예제 입력 16 18045 30 55 20 80 20 |
예제 출력 14 |
예제 입력 210 6020 7 10 8 10 27 2 3 10 5 |
예제 출력 25 |
풀이
FCFS이기 때문에, 무조건 앞에서부터 순차적으로 처리해야 한다.
배열의 원소를 차례로 훑으며 t에서 빼준다.
만약, t를 원소만큼 뺐을 때 t가 0이상이라면 처리한 일의 개수를 1 늘려주고
아니라면 코드를 중지한다.
마지막으로 현재까지 수행한 일의 개수를 출력한다.
n,t = map(int,input().split())
fcfs = list(map(int,input().split()))
r = 0
for i in fcfs:
t -= i
if t>=0:
r+=1
else:
break
print(r)
'알고리즘 연습 > 기초 (입출력 등)' 카테고리의 다른 글
[🥉2 / 백준 5597 / 파이썬] 과제 안 내신 분..? (0) | 2021.09.28 |
---|---|
[🥉4 / 백준 2525 / 파이썬] 오븐 시계 (0) | 2021.09.24 |
[🥉3 / 백준 12833 / 파이썬] XORXORXOR (0) | 2021.08.25 |
[🥉4 / 백준 10797 / 파이썬] 10부제 (0) | 2021.08.21 |
[🥉3 / 백준 2455 / 파이썬] 지능형 기차 (0) | 2021.08.21 |