honey_pot
[python] 디스크 컨트롤러 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42627
heapq 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import heapq
def solution(jobs):
answer, i, now = 0,0,0
start = -1
heap = []
while i < len(jobs) :
for job in jobs:
if start < job[0] <= now:
heapq.heappush(heap, [job[1],job[0]])
if len(heap) > 0:
cur = heapq.heappop(heap)
start = now
now += cur[0]
answer += now - cur[1]
i += 1
else:
now += 1
return answer//len(jobs)
|
cs |
list 풀이
start보다 진입 시간이 작거나 같아야 한다
반복문을 다돌고 jobs는 아직 남았는데 진입시점이 start 보다 큰 경우 = 자리가 있는데 수행할 일이 없는 경우 start += 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def solution(jobs):
answer = 0
n = len(jobs)
jobs.sort(key=lambda x: x[1])
start = 0 # 시작 시간
while jobs:
for i, job in enumerate(jobs):
if job[0] <= start:
start += job[1]
answer += start - job[0]
del jobs[i]
break
if i == len(jobs) - 1:
start += 1
return answer//n
|
cs |
'문제 풀이' 카테고리의 다른 글
[Python] 1911번: 흙길 보수하기 (0) | 2022.10.30 |
---|---|
[python] 입국심사 (0) | 2022.09.30 |
[Python] 가장 먼 노드 (0) | 2022.09.28 |
[Python] 섬 연결하기 (0) | 2022.09.28 |
[Python] 보석 쇼핑 (1) | 2022.09.23 |
Comments