π€λ¬Έμ ν΄κ²°
Lv4 | μ°μ μμ ν?
κ°μ₯ μ²μ μκ°λ건 μμ 1μ΄μ© μ λΆ λμ보μ!!
νμ§λ§ μμλ μκ°μ΄κ³Ό λ°μ ππ€£
μμμ νκΊΌλ²μ λΊμ μμκΉ μκ°ν΄μ κ°μ₯ μ μ μμμ μλ§νΌ μ¬μ΄ν΄μ λκΈ°λ‘ νλ€.
μλ₯Ό λ€μ΄ μμμ΄ [ 5,5,3,3,6 ] μ΄λΌλ©΄ 3λ§νΌ νκΊΌλ²μ λμμ£Όλ κ²μ΄λ€.
μμμ΄ 3λ§νΌ μκ³ , μ 체 κΈΈμ΄κ° 5 μ΄λ―λ‘, 15μ΄ λ€μλ [ 2,2,0,0,3 ] μ΄ λλ€κ³ μμλ§!!! μ§μ λΉΌμ£Όκ³ νλ©΄ μκ° μ΄κ³Ό
λ€μμ 2λ§νΌ μκ³ , μ 체 κΈΈμ΄κ° 3 μ΄λ―λ‘ (0μ μ·¨κΈ μν¨), 6 μ΄ λ€μλ [ 0,0,0,0,1 ] μμ μμλ§ νμ
μμ λ°©λ² μ²λΌ νκΊΌλ²μ λΉΌμ£Όλλ° κ°μ₯ μ μ μμμ μ΄λ»κ² κΊΌλ΄λνλ©΄
λ°λ‘ ννλ₯Ό μ°μ. ννμ μμμ μκ³Ό ν΄λΉ μμμ λ²νΈλ₯Ό μ°¨λ‘λ‘ λ£μΌλ©΄ κ°μ₯ μμ μμμ κΊΌλΌ μ μλ€.
μ λ κ² κ³μ μ 체 k μ΄μμ λΉΌμ£Όλ€κ° kμ΄λ₯Ό λμ΄κ°κ² λλ€λ©΄ λμ΄κ°κΈ° λ°λ‘ μ§μ κΉμ§μ μκ°μ΄λ§ μΌλ€.
λ¨μ μκ°μ΄λ‘ ννμμ λ¨μ μμλ€μ λμμ£Όλ©΄ λ!!!!!!!
π¨ μ΄μν λ°©λ²μΌλ‘ λμ‘νκ² νμ΄λ μ νμ±μ΄ λ¨μ΄μ§λ€..μ€μ μ½ν μν©μ΄λΌλ©΄ λλ¬Όμ λ¨ΈκΈκ³ λ€μλ¬Έμ λ‘ λμ΄κ°μπ
π»μμ€ μ½λ
import heapq
def solution(food_times, k):
n = len(food_times) # μ 체길μ΄
pq = [] # νν λ£μ κ³³
for i in range(n): # νν λ£μ΄μ€ ( μμμ, λ²νΈ )
heapq.heappush(pq, (food_times[i], i + 1))
pre_food = 0 # κ°μ₯ λ°λ°λ₯
min_food = pq[0][0] # νμ¬ μμμ€ κ°μ₯ μμ λ
μ
# μ¬μ΄ν΄ λλ©΄μ kμμ μκ°μ κ³μ λΉΌμ€λ€.
while True:
# μ¬μ΄ν΄ λμμ λ k κ° μμκ° λλ©΄ λΉΌμ£Όμ§ λ§κ³ λμ€μ
if k - (min_food - pre_food) * n < 0:
break
# μλλΌλ©΄ k λΉΌμ£Όκ³
k -= (min_food - pre_food) * n
# ννμμλ κ·Έ μμμ λΉΌμ€λ€.
heapq.heappop(pq)
pre_food = min_food # λ°λ₯μ λ°©κΈ κ·Έ μμμ μμ΄λ€.
n -= 1 # μ 체 κΈΈμ΄λ νλ λΉΌμ€λ€.
# λ§μ½ λ€ λ¨Ήμλλ°λ kκ° λ¨μμλ€λ©΄
# μμμ΄ λΆμ‘±ν μνμ΄λ―λ‘
if not pq:
return -1
# μ΄κ²μ λμ€μ ν΄μ£Όλ μ΄μ λ μμμ λΉμ΄μμ κ²½μ° μΈλ±μ€ μλ¬κ° λκΈ° λλ¬Έ
min_food = pq[0][0]
# μ 체 κΈΈμ΄λ³΄λ€ λ¨μ μ΄κ° λ λ§μ μ μμΌλ―λ‘
# μ΄λ₯Ό κΈΈμ΄λ‘ λλ λλ¨Έμ§κ° λ΅μ΄λ€.
idx = k % n
# λ€μ λ²νΈ μμΌλ‘ μ λ ¬ ν΄μ£Όκ³
pq.sort(key=lambda x: x[1])
answer = pq[idx][1]
return answer
πλ¬Έμ νμΈ
μΆμ²: νλ‘κ·Έλλ¨Έμ€
λ§ν¬: https://programmers.co.kr/learn/courses/30/lessons/42891
λ¬Έμ μ€λͺ
무μ§μ λ¨Ήλ°© λΌμ΄λΈ
* ν¨μ¨μ± ν μ€νΈμ λΆλΆ μ μκ° μλ λ¬Έμ μ λλ€.
νμ μμμ΄ μμ±ν 무μ§λ μμ μ μ¬λ₯μ λ½λ΄κ³ μΆμ΄ μ‘κ³ κ³ λ―Ό λμ μΉ΄μΉ΄μ€ TV λΌμ΄λΈλ‘ λ°©μ‘μ νκΈ°λ‘ λ§μλ¨Ήμλ€.
κ·Έλ₯ λ¨Ήλ°©μ νλ©΄ λ€λ₯Έ λ°©μ‘κ³Ό μ°¨λ³μ±μ΄ μκΈ° λλ¬Έμ 무μ§λ μλμ κ°μ΄ λ νΉν λ°©μμ μκ°ν΄λλ€.
νμ νμ λ¨Ήμ΄μΌ ν N κ°μ μμμ΄ μλ€.
κ° μμμλ 1λΆν° N κΉμ§ λ²νΈκ° λΆμ΄μμΌλ©°, κ° μμμ μμ·¨νλλ° μΌμ μκ°μ΄ μμλλ€.
무μ§λ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ μμμ μμ·¨νλ€.
- 무μ§λ 1λ² μμλΆν° λ¨ΉκΈ° μμνλ©°, νμ νμ λ²νΈκ° μ¦κ°νλ μμλλ‘ μμμ λ¬΄μ§ μμΌλ‘ κ°μ Έλ€ λλλ€.
- λ§μ§λ§ λ²νΈμ μμμ μμ·¨ν νμλ νμ νμ μν΄ λ€μ 1λ² μμμ΄ λ¬΄μ§ μμΌλ‘ μ¨λ€.
- 무μ§λ μμ νλλ₯Ό 1μ΄ λμ μμ·¨ν ν λ¨μ μμμ κ·Έλλ‘ λκ³ , λ€μ μμμ μμ·¨νλ€.
- λ€μ μμμ΄λ, μμ§ λ¨μ μμ μ€ λ€μμΌλ‘ μμ·¨ν΄μΌ ν κ°μ₯ κ°κΉμ΄ λ²νΈμ μμμ λ§νλ€.
- νμ νμ΄ λ€μ μμμ λ¬΄μ§ μμΌλ‘ κ°μ Έμ€λλ° κ±Έλ¦¬λ μκ°μ μλ€κ³ κ°μ νλ€.
무μ§κ° λ¨Ήλ°©μ μμν μ§ K μ΄ νμ λ€νΈμν¬ μ₯μ λ‘ μΈν΄ λ°©μ‘μ΄ μ μ μ€λ¨λμλ€.
무μ§λ λ€νΈμν¬ μ μν ν λ€μ λ°©μ‘μ μ΄μ΄κ° λ, λͺ λ² μμλΆν° μμ·¨ν΄μΌ νλμ§λ₯Ό μκ³ μ νλ€.
κ° μμμ λͺ¨λ λ¨Ήλλ° νμν μκ°μ΄ λ΄κ²¨μλ λ°°μ΄ food_times, λ€νΈμν¬ μ₯μ κ° λ°μν μκ° K μ΄κ° 맀κ°λ³μλ‘ μ£Όμ΄μ§ λ λͺ λ² μμλΆν° λ€μ μμ·¨νλ©΄ λλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
μ νμ¬ν
- food_times λ κ° μμμ λͺ¨λ λ¨Ήλλ° νμν μκ°μ΄ μμμ λ²νΈ μμλλ‘ λ€μ΄μλ λ°°μ΄μ΄λ€.
- k λ λ°©μ‘μ΄ μ€λ¨λ μκ°μ λνλΈλ€.
- λ§μ½ λ μμ·¨ν΄μΌ ν μμμ΄ μλ€λ©΄ -1μ λ°ννλ©΄ λλ€.
μ νμ± ν μ€νΈ μ ν μ¬ν
- food_times μ κΈΈμ΄λ 1 μ΄μ 2,000 μ΄νμ΄λ€.
- food_times μ μμλ 1 μ΄μ 1,000 μ΄νμ μμ°μμ΄λ€.
- kλ 1 μ΄μ 2,000,000 μ΄νμ μμ°μμ΄λ€.
ν¨μ¨μ± ν μ€νΈ μ ν μ¬ν
- food_times μ κΈΈμ΄λ 1 μ΄μ 200,000 μ΄νμ΄λ€.
- food_times μ μμλ 1 μ΄μ 100,000,000 μ΄νμ μμ°μμ΄λ€.
- kλ 1 μ΄μ 2 x 10^13 μ΄νμ μμ°μμ΄λ€.
μ μΆλ ₯ μ
food_times | k | result |
[3, 1, 2] | 5 | 1 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- 0~1μ΄ λμμ 1λ² μμμ μμ·¨νλ€. λ¨μ μκ°μ [2,1,2] μ΄λ€.
- 1~2μ΄ λμ 2λ² μμμ μμ·¨νλ€. λ¨μ μκ°μ [2,0,2] μ΄λ€.
- 2~3μ΄ λμ 3λ² μμμ μμ·¨νλ€. λ¨μ μκ°μ [2,0,1] μ΄λ€.
- 3~4μ΄ λμ 1λ² μμμ μμ·¨νλ€. λ¨μ μκ°μ [1,0,1] μ΄λ€.
- 4~5μ΄ λμ (2λ² μμμ λ€ λ¨ΉμμΌλ―λ‘) 3λ² μμμ μμ·¨νλ€. λ¨μ μκ°μ [1,0,0] μ΄λ€.
- 5μ΄μμ λ€νΈμν¬ μ₯μ κ° λ°μνλ€. 1λ² μμμ μμ·¨ν΄μΌ ν λ μ€λ¨λμμΌλ―λ‘, μ₯μ 볡ꡬ νμ 1λ² μμλΆν° λ€μ λ¨ΉκΈ° μμνλ©΄ λλ€.
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] νλ‘κ·Έλλ¨Έμ€ - λλμ§ (0) | 2020.09.12 |
---|---|
[python] νλ‘κ·Έλλ¨Έμ€ - μ¬νκ²½λ‘ (0) | 2020.09.12 |
[python] νλ‘κ·Έλλ¨Έμ€ - λΈλ‘ κ²μ(2019 KAKAO BLIND RECRUITMENT) (3) | 2020.09.11 |
[python] νλ‘κ·Έλλ¨Έμ€ - μΌκ·Ό μ§μ (0) | 2020.09.11 |
[python] νλ‘κ·Έλλ¨Έμ€ - μΏ ν€ κ΅¬μ (0) | 2020.09.10 |