๋ฌธ์ ์ค๋ช
https://programmers.co.kr/learn/courses/30/lessons/42627 ์ฐธ์กฐ
๋์ ์๋ฃจ์
์์์ ๋ง๋ค์ด ํ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค. (๋ค๋ง ๊ณต์์ ์์๋ด๊ธฐ๊น์ง ์๊ฐ์ด ๋ค์ ๊ฑธ๋ ธ๋ค) ์ด ๋ฌธ์ ์ ํต์ฌ์ ํ๊ท ์๊ฐ์ ์ต๋ํ ์ค์ด๋ ๊ฒ์ด์๊ธฐ ๋๋ฌธ์, ํ๊ท ์ ํน์ง์ ์ ์๊ฐํด๋ณด๋ฉฐ ์ ๊ทผํ๋ค.
ํ๊ท ์ ๋ฎ์ถ ์ ์๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ๊ฐ์ ๋ฎ์ถ ์ ์๋ ๋งํผ ๋ฎ์ถ๋ ๊ฒ์ด๋ค. ํ๊ท ์ ์ซ์๋ค์ด ๋ฐ์ง๋์ด ์๋ ๊ฐ์ด ์ถ์ถ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ๊ฐ ํ๋๋ผ๋ ์ด๋ง์ด๋งํ๊ฒ ํฐ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค๋ฉด ํ๊ท ์ญ์ ๊ทธ๋งํผ ๋์์ง๊ฒ ๋๋ค.
jobs ๋ฐฐ์ด์๋ ํ๋์ ์์ ์ด ์์ฒญ๋๋ ์์ ๊ณผ ํด๋น ์์ ์ ์์๋๋ ์๊ฐ๋ค์ ์งํฉ์ด ๋ด๊ฒจ์๋ค. ์์ ์ด ์์ฒญ๋๋ ์์ ์ ์ฆ์ ์คํ๋๋ฉด ์์ ์๊ฐ์ ์ต์ํ ๋ ๊ฒ์ด๋ฉฐ, ์์ ์ด ์์๋๋ ์๊ฐ์ด ๋ค๋ก ๋ฐ๋ฆด์๋ก ์ด ์์ ์๊ฐ์ด ๋์ด๋ ๊ฒ์์ ๋น์ฐํ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์์ ์ด ์์ฒญ ์๊ฐ๊ณผ ์ต๋ํ ๊ทผ์ ํ ์๊ฐ์ ์คํ๋ ์ ์๋๋ก ์ผ์ฐ ๋ค์ด์จ ์์ฒญ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์์ ์๊ฐ์ ๊ณ์ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
import heapq
def solution(jobs):
result = []
heapq.heapify(jobs)
time = jobs[0][0]
while True:
if len(jobs) == 0:
break
if jobs[0][0] > time:
first = heapq.heappop(jobs)
time = first[1] + first[0]
else:
new_jobs = list(filter(lambda x : x[0] <= time, jobs))
new_jobs.sort(key = lambda x: (x[1],-x[0]))
first = new_jobs[0]
time += first[1]
jobs.remove(first)
result.append(time-first[0])
return sum(result) / len(result)
'๐ป DEV > ใด problems' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ : ์ด์ค์ฐ์ ์์ํ (0) | 2021.07.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํด์ : ๋ฒ ์คํธ์จ๋ฒ (0) | 2021.07.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ : H-Index (0) | 2021.07.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ํ์ : ์นดํซ (0) | 2021.07.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์๋ฒ(Greedy) : ๊ตฌ๋ช ๋ณดํธ (0) | 2021.07.13 |
๋๊ธ