7월 3주차 - syh39/ProblemSolving GitHub Wiki
오픈채팅방
def solution(record):
users = {}
log = []
result = []
for r in record:
splited = r.split(" ")
if len(splited) == 3:
users[splited[1]] = splited[2]
log.append([splited[0], splited[1]])
for cmd, uid in log:
if cmd == "Enter":
result.append(users[uid]+"님이 들어왔습니다.")
if cmd == "Leave":
result.append(users[uid]+"님이 나갔습니다.")
return result
디스크 컨트롤러
- 출처: 힙(Heap)
- 난이도 : Level 3
- 풀이 여부 : Y
- 소요 시간 : 60분
- 유형 : 구현
import heapq
from collections import deque
def solution(jobs):
length = len(jobs)
cur_time = -1
job_time = 0
result = []
q = []
i = 0
while i < length:
if q:
f, s = heapq.heappop(q)
#일을 하는 동안에 일어나는 일 처리
while True:
if job_time == f:
i += 1
job_time = 0
result.append(cur_time - s)
break
cur_time += 1
job_time += 1
for j in jobs:
if j[0] == cur_time:
new_s, new_f = j[0], j[1]
heapq.heappush(q, (new_f, new_s))
else:
cur_time += 1
for j in jobs:
if j[0] == cur_time:
new_s, new_f = j[0], j[1]
heapq.heappush(q, (new_f, new_s))
return sum(result)//length