[μ€μννΈ μκ³ λ¦¬μ¦] νλ‘κ·Έλλ¨Έμ€: λμ€ν¬ 컨νΈλ‘€λ¬
λ¬Έμ
https://programmers.co.kr/learn/courses/30/lessons/42627
μ½λ©ν μ€νΈ μ°μ΅ - λμ€ν¬ 컨νΈλ‘€λ¬
νλλμ€ν¬λ ν λ²μ νλμ μμ λ§ μνν μ μμ΅λλ€. λμ€ν¬ 컨νΈλ‘€λ¬λ₯Ό ꡬννλ λ°©λ²μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ λ°©λ²μ μμ²μ΄ λ€μ΄μ¨ μμλλ‘ μ²λ¦¬νλ κ²μ λλ€. μλ₯Ό
programmers.co.kr
λ¬Έμ μ€λͺ
νλλμ€ν¬λ ν λ²μ νλμ μμ λ§ μνν μ μμ΅λλ€. λμ€ν¬ 컨νΈλ‘€λ¬λ₯Ό ꡬννλ λ°©λ²μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ λ°©λ²μ μμ²μ΄ λ€μ΄μ¨ μμλλ‘ μ²λ¦¬νλ κ²μ λλ€.
μλ₯Όλ€μ΄
- 0ms μμ μ 3msκ° μμλλ Aμμ μμ² - 1ms μμ μ 9msκ° μμλλ Bμμ μμ² - 2ms μμ μ 6msκ° μμλλ Cμμ μμ²
μ κ°μ μμ²μ΄ λ€μ΄μμ΅λλ€. μ΄λ₯Ό κ·Έλ¦ΌμΌλ‘ νννλ©΄ μλμ κ°μ΅λλ€.
ν λ²μ νλμ μμ²λ§μ μνν μ μκΈ° λλ¬Έμ κ°κ°μ μμ μ μμ²λ°μ μμλλ‘ μ²λ¦¬νλ©΄ λ€μκ³Ό κ°μ΄ μ²λ¦¬ λ©λλ€.
- A: 3ms μμ μ μμ μλ£ (μμ²μμ μ’ λ£κΉμ§ : 3ms) - B: 1msλΆν° λκΈ°νλ€κ°, 3ms μμ μ μμ μ μμν΄μ 12ms μμ μ μμ μλ£(μμ²μμ μ’ λ£κΉμ§ : 11ms) - C: 2msλΆν° λκΈ°νλ€κ°, 12ms μμ μ μμ μ μμν΄μ 18ms μμ μ μμ μλ£(μμ²μμ μ’ λ£κΉμ§ : 16ms)
μ΄ λ κ° μμ μ μμ²λΆν° μ’ λ£κΉμ§ κ±Έλ¦° μκ°μ νκ· μ 10ms(= (3 + 11 + 16) / 3)κ° λ©λλ€.
νμ§λ§ A → C → B μμλλ‘ μ²λ¦¬νλ©΄
- A: 3ms μμ μ μμ μλ£(μμ²μμ μ’ λ£κΉμ§ : 3ms) - C: 2msλΆν° λκΈ°νλ€κ°, 3ms μμ μ μμ μ μμν΄μ 9ms μμ μ μμ μλ£(μμ²μμ μ’ λ£κΉμ§ : 7ms) - B: 1msλΆν° λκΈ°νλ€κ°, 9ms μμ μ μμ μ μμν΄μ 18ms μμ μ μμ μλ£(μμ²μμ μ’ λ£κΉμ§ : 17ms)
μ΄λ κ² A → C → Bμ μμλ‘ μ²λ¦¬νλ©΄ κ° μμ μ μμ²λΆν° μ’ λ£κΉμ§ κ±Έλ¦° μκ°μ νκ· μ 9ms(= (3 + 7 + 17) / 3)κ° λ©λλ€.
κ° μμ μ λν΄ [μμ μ΄ μμ²λλ μμ , μμ μ μμμκ°]μ λ΄μ 2μ°¨μ λ°°μ΄ jobsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μμ μ μμ²λΆν° μ’ λ£κΉμ§ κ±Έλ¦° μκ°μ νκ· μ κ°μ₯ μ€μ΄λ λ°©λ²μΌλ‘ μ²λ¦¬νλ©΄ νκ· μ΄ μΌλ§κ° λλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ. (λ¨, μμμ μ΄νμ μλ λ²λ¦½λλ€)
νμ΄
μ΄μ체μ λ₯Ό 곡λΆνλ μ¬λλ€μκ²λ μ½κ² μ΄ν΄κ° λμμ SJF(Shortest Job First) μκ³ λ¦¬μ¦μ κ·Έλλ‘ κ΅¬ννλ λ¬Έμ μμ΅λλ€. νμ μ¬μ©ν μ°μ μμ νλ₯Ό μ¬μ©νλ©΄ λ μ½κ² λ°μ΄ν°λ₯Ό κ΄λ¦¬ν μ μκ² μ§λ§, swiftλ μ°μ μμ νλ₯Ό μ§μνμ§ μκΈ° λλ¬Έμ μ λ ¬μ ν΅ν΄ μνλ μ°μ μμκ° λμ λ°μ΄ν°λ₯Ό λ°°μ΄ μ μΌ λμΌλ‘ 보λ΄λ λ°©λ²μ μ¬μ©ν μ μμμ΅λλ€.
μκ³ λ¦¬μ¦μ λ€μκ³Ό κ°μ΅λλ€.
1. μ²μμλ κ°μ₯ λ¨Όμ λμ°©ν μμ μ μννλ€.
2. μ΄λ² μμ μ μννλ λμ λμ°©νλ μμ λ€μ λ³λμ μμ νμ λͺ¨μλ€.
3. μμ νμ λμ°©ν μμ λ€ μ€ μνμκ°μ΄ κ°μ₯ μ§§μ μμ μ κΊΌλ΄ μννλ€.
4. λͺ¨λ μμ μ μ²λ¦¬ν λκΉμ§ 2, 3λ² κ³Όμ μ λ°λ³΅νλ€.
κ·Έλ°λ° μμ μΌμ΄μ€μμλ μ μκ³ λ¦¬μ¦λλ‘ μ²λ¦¬νμ λ, μ‘μλ΄μ§ λͺ»νλ μΌμ΄μ€κ° μμ΅λλ€. μμ λ€μ΄ μ°λ¬μ λ€μ΄μ€μ§ μκ³ μ€κ°μ λΉμ΄μλ μκ°μ΄ μμ λμΈλ°μ, μ λ μ΄λ₯Ό μν΄μ μμ νμ λ μ΄μ μμ μ΄ μκ³ , μμ§ λμ°©ν΄μΌν μμ λ€μ΄ λ¨μλ€λ©΄ κ·Έ μ€ κ°μ₯ 빨리 λμ°©νλ νλμ μμ μ κΊΌλ΄ μμ νλ‘ λ£μ΄μ£Όλ λ°©λ²μ μ ννμ΅λλ€. μ΄λ κ² νλ©΄ μ€κ°μ μμ μ΄ λκΈ°λ ꡬκ°μ΄ μ겨λ λ°λ‘ λ€μ μμ μ λ°μμ μ²λ¦¬νκ² λ§λ€ μ μμ΅λλ€.