내 인생은 개발 중
[프로그래머스] 디스크 컨트롤러 - Python 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42627
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import heapq
def solution(jobs):
answer, i, now = 0, 0, 0
start = -1
n = len(jobs)
heap = []
while i < n:
for j in jobs:
if start < j[0] <= now:
heapq.heappush(heap, [j[1], j[0]])
if len(heap) > 0:
current = heapq.heappop(heap)
start = now
now += current[0]
answer += now - current[1]
i += 1
else:
now += 1
return answer // n
처음엔 permutaion을 이용해서 풀었는데 시간초과가 났다.
heap에 대해서 이해를 잘 하지 못했는데 이 문제를 풀면서 heap에 대해서 이해를 할 수 있었다!
heapq 모듈을 사용하면 최소힙처럼 사용할 수 있는데 이를 이용해서 지금 처리할 수 있는 작업 중에서 가장 빠르게 끝나는 작업을 먼저 끝내는 로직을 구현할 수 있었다!
그냥 이 문제만 봤을땐 heap을 쓰는건지 아직 판단은 잘 못할듯 하댜 ㅠㅜ 더 열심히 많이 많이 풀어봐야게땨!!
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가장 먼 노드 - Python (0) | 2024.06.18 |
---|---|
[프로그래머스] 섬 연결하기 - Python (0) | 2024.06.11 |
[프로그래머스] 괄호 회전하기 - Python (0) | 2024.06.05 |
[프로그래머스] 연속 부분 수열 합의 개수 - Python (0) | 2024.05.30 |
[프로그래머스] 주차 요금 계산 - Python (0) | 2024.05.22 |
Comments