| μΌ | μ | ν | μ | λͺ© | κΈ | ν | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
- νμ΄μ¬
- Blind
- javascript
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- μ€ν
- μλ£κ΅¬μ‘°
- DP
- SSAFY
- λ°±μ€
- μΈνΌ
- κ·Έλν
- μ½ν 
- Backjoon
- sort
- μλ°μ€ν¬λ¦½νΈ
- Python
- algorithm
- BFS
- μΉ΄μΉ΄μ€
- SWEA
- μκ³ λ¦¬μ¦
- DFS
- boj
- νν
- kakao
- μΌμ±
- μ½λ©ν μ€νΈ
- νλ‘κ·Έλλ¨Έμ€
- μμ νμ
- SWμλν μ€νΈ
- Today
- Total
λ§μν
[python] νλ‘κ·Έλλ¨Έμ€ - 무μ§μ λ¨Ήλ°© λΌμ΄λΈ(2019 KAKAO BLIND RECRUITMENT) λ³Έλ¬Έ
[python] νλ‘κ·Έλλ¨Έμ€ - 무μ§μ λ¨Ήλ°© λΌμ΄λΈ(2019 KAKAO BLIND RECRUITMENT)
deo2kim 2020. 9. 11. 22:42π€λ¬Έμ  ν΄κ²°
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
μ½λ©ν μ€νΈ μ°μ΅ - 무μ§μ λ¨Ήλ°© λΌμ΄λΈ
programmers.co.kr
λ¬Έμ  μ€λͺ
무μ§μ λ¨Ήλ°© λΌμ΄λΈ
* ν¨μ¨μ± ν μ€νΈμ λΆλΆ μ μκ° μλ λ¬Έμ μ λλ€.
νμ μμμ΄ μμ±ν 무μ§λ μμ μ μ¬λ₯μ λ½λ΄κ³ μΆμ΄ μ‘κ³ κ³ λ―Ό λμ μΉ΄μΉ΄μ€ 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 | 
 
                   
                   
                  