π Problem Solving/Programmers
μ½λ©ν μ€νΈ μ°μ΅ - λμ€ν¬ 컨νΈλ‘€λ¬
νλλμ€ν¬λ ν λ²μ νλμ μμ λ§ μνν μ μμ΅λλ€. λμ€ν¬ 컨νΈλ‘€λ¬λ₯Ό ꡬννλ λ°©λ²μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ λ°©λ²μ μμ²μ΄ λ€μ΄μ¨ μμλλ‘ μ²λ¦¬νλ κ²μ λλ€. μλ₯Ό
programmers.co.kr




import sys
import heapq
input = sys.stdin.readline
jobs = [list(map(int, input().split())) for _ in range(int(input()))]
def solution(jobs):
answer, now, i = 0, 0, 0
start = -1
q = []
while i < len(jobs):
for job in jobs:
if start < job[0] <= now:
heapq.heappush(q, (job[1], job[0]))
if q:
current = heapq.heappop(q)
start = now
now += current[0]
answer += now - current[1]
i += 1
else:
now += 1
return answer // len(jobs)
print(solution(jobs))
ν΄μ€
μμ μμ μμ μ€νν μ μλ μμ λ€ μ€ μμ κΈΈμ΄κ° μμ μμ λΆν° μ€ννλ©΄ λλ€.
start = μμμ§μ , now = μμ μ΄ λλ μμ
1. μ΄μ μμ μ μμμμ κ³Ό μμ μ΄ λλ μμ μ¬μ΄μ λμ°©ν μμ λ€μ΄ μμΌλ©΄ heaqμ μ μ₯νλ€.
2. λμ°©ν μμ λ€μ΄ μ‘΄μ¬νλ€λ©΄ μμ μκ°μ΄ μ μΌ μμ μμ μ κΊΌλΈλ€.
3. μ΄μ μμμ§μ μ μ΄μ μμ μ΄ λλ μμ μ΄ λλ€.
4. μμ λ μμ μ μ΄μ μμ λ μμ μμ νμ¬ μμ μ μμ μκ°μ λν μμ μ΄ λλ€.
5. answerμλ νμ¬μμ μ΄ λλ μμ μμ νμ¬ μμ μ΄ λμ°©ν μμ μ λΉΌμ€ κ°μ λνλ€.
6. 2λ² κ³Όμ μμ λμ°©ν μμ λ€μ΄ μλ€λ©΄ nowλ₯Ό 1μ© μ¦κ°μμΌμ€λ€.
'π Problem Solving > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€-Lv3] κ°μ₯ λ¨Ό λ Έλ / Python (0) | 2021.06.18 |
---|---|
[νλ‘κ·Έλλ¨Έμ€-Lv3] λ€νΈμν¬ / Python (0) | 2021.06.17 |
[νλ‘κ·Έλλ¨Έμ€-Lv3] λ² μ€νΈμ¨λ² / Python (0) | 2021.06.16 |
[νλ‘κ·Έλλ¨Έμ€-Lv2] λ©μ©‘ν μ¬κ°ν / Python (0) | 2021.06.16 |
[νλ‘κ·Έλλ¨Έμ€-Lv2] μ§μ§μ΄ μ κ±°νκΈ° / Python (0) | 2021.06.16 |