๐ŸŒฑ โ†’ ๐ŸŒณ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ - python ๋ณธ๋ฌธ

Algorithms

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ - python

thals0 2023. 8. 31. 09:29
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42627

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๋ฌธ์ œ ์ •๋ณด

๋ฌธ์ œ ์œ ํ˜•  ๋‚œ์ด๋„ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ ํ•ด๊ฒฐ ์œ ๋ฌด ์Šค์Šค๋กœ ๊ตฌํ˜„ ์„ฑ๊ณต
ํž™ level3 45m o x

์ฝ”๋“œ

์ฒ˜์Œ ์ ‘๊ทผํ–ˆ๋˜ ๋ฐฉ์‹

  • ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ๋“ค(jobs[][1])๋กœ ์ •๋ ฌํ•œ ํ›„ ๊ณ„์‚ฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐ
def solution(jobs):
    answer, total = 0, 0
    jobs.sort(key=lambda x : x[1])
    total = jobs[0][1] - jobs[0][0]
    answer = total 
    for i in range(1, len(jobs)):
        answer += total + jobs[i][1] - jobs[i][0]
        total += jobs[i][1]
    return answer//len(jobs)

๋ฐ˜๋ก€ : [[0,3],[4,1]]

jobs[][0]๋„ ๊ณ ๋ คํ•ด์ค˜์•ผ ํ•˜๋Š” ์š”์†Œ์ž„์„ ์ƒ๊ฐ ๋ชปํ•จ

 

์ •๋‹ต ์ฝ”๋“œ

from heapq import *

def solution(jobs):
    answer, i, total = 0,0,0
    l = len(jobs)
    h = []

    while i < l:
        for j in jobs:
            if 0 <= j[0] <= total:
                heappush(h, (j[1], j[0]))
                j[0] = -1
        if h:
            cur = heappop(h)
            total += cur[0]
            answer += total - cur[1]
            i += 1
        else:
            total += 1
    return answer//l

heapq๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ

728x90