π Coding Test/Programmers
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level 3 (μΌκ·Ό μ§μ)
γ
γ
γ
γ
2023. 1. 17. 02:04
728x90
1. λ¬Έμ μ€λͺ
νμ¬μ Demiλ κ°λμ μΌκ·Όμ νλλ°μ, μΌκ·Όμ νλ©΄ μΌκ·Ό νΌλ‘λκ° μμ λλ€. μΌκ·Ό νΌλ‘λλ μΌκ·Όμ μμν μμ μμ λ¨μ μΌμ μμ λμ μ κ³±νμ¬ λν κ°μ λλ€. Demiλ Nμκ° λμ μΌκ·Ό νΌλ‘λλ₯Ό μ΅μννλλ‘ μΌν κ²λλ€.Demiκ° 1μκ° λμ μμ λ 1λ§νΌμ μ²λ¦¬ν μ μλ€κ³ ν λ, ν΄κ·ΌκΉμ§ λ¨μ N μκ°κ³Ό κ° μΌμ λν μμ λ worksμ λν΄ μΌκ·Ό νΌλ‘λλ₯Ό μ΅μνν κ°μ 리ν΄νλ ν¨μ solutionμ μμ±ν΄μ£ΌμΈμ.
2. μ ν μ¬ν
worksλ κΈΈμ΄ 1 μ΄μ, 20,000 μ΄νμΈ λ°°μ΄μ
λλ€.
- worksμ μμλ 50000 μ΄νμΈ μμ°μμ λλ€.
- nμ 1,000,000 μ΄νμΈ μμ°μμ λλ€.
3. λ΄ νμ΄
import heapq
def solution(n, works):
works.sort(reverse=True)
works = [-x for x in works if x>0]
for i in range(n):
w = heapq.heappop(works)
if w <= -1:
heapq.heappush(works,w+1)
else:
heapq.heappush(works,w)
return sum([x**2 for x in works])
μμ κ°μ μμκ°μΌλ‘ λ³κ²½ν λ€ μ΅μ ν μ¬μ©
4. λ€λ₯Έ μ¬λ νμ΄
from heapq import heapify, heappush, heappop
def solution(n, works):
heapify(works := [-i for i in works])
for i in range(min(n, abs(sum(works)))):
heappush(works, heappop(works)+1)
return sum([i*i for i in works])
728x90