π λ¬Έμ
π± μμ΄λμ΄
μ λ ₯λλ λ무μ μ(N)μ 1 ≤ N ≤ 1,000,000, μ¦ O(n^2)μ κ°μ§λ μκ³ λ¦¬μ¦μ΄ μλ O(N)λλ λ λΉ λ₯Έ μκ³ λ¦¬μ¦μ μ¬μ©ν΄μΌ νλ€.
λ§μ½ Mλ―Έν°μ λ무λ₯Ό κ°μ Έκ°κΈ° μν΄μ 1~1,000,000κΉμ§μ λμ΄λ₯Ό λμ΄λΈνκ² λμ νλ©΄μ λ΅μ ꡬν μ μμ§λ§,
μ΅μ μΌ κ²½μ°λ μκ°μ΄κ³Όκ° λκ² λλ€. μ¦ λͺ¨λ κ²½μ°λ₯Ό λμ νλ λ°©μμ μ΄ λ¬Έμ μμλ ν리λ€!
ν° λ²μμμ ν΄λΉκ°μ νλλ₯Ό ꡬν΄μΌ νλ€, μ΄μ§νμ(Binary Search)μ ν΅ν΄μ ν΄λΉκ°μ ꡬν μ μλ€.
κ°μ μ ν΄λ³΄μ, λ§μ½ 1 ~ 7κΉμ§μμ 6μ ꡬν΄μΌ νλ€λ©΄ μ΄μ§νμμ μ΄λ κ² μλνλ€.
μΌλ¨ μ΄μ§νμμ νκΈ° μν΄μ μ΅μκ°, μ€κ°κ°(mid), μ΅λκ°μ ꡬν΄μΌ νλ€.
μ²μμλ μ€κ°κ°μΈ 4λ₯Ό νμνλ€, νμ§λ§ λ΅μΈ "6"μ΄ μλλ©΄μ μ€κ°κ°μΈ "4" λ³΄λ€ ν¬κΈ° λλ¬Έμ λ²μλ₯Ό 5~7λ‘ μ‘°μ νλ€.
μ΄ κ³Όμ μμ μ΅μκ°μ (mid+1) κ°μΌλ‘ κ°±μ νλ€.
μ΅μκ°μ mid +1 = 5κ° λμκ³ , μ΅μκ°κ³Ό μ΅λκ°μ μ€κ°κ°μΈ "6"μ νμνκ³ μ’ λ£νλ€.
μ¦ μμ ꡬ쑰λ₯Ό λ°λ³΅ν΄μ λ²μλ₯Ό 2λ‘ λλλ©΄μ "λ΅μ΄ μ‘΄μ¬νλ λ²μλ₯Ό μ€μ¬κ°λ©° νμνλ€"
μ λ¬Έμ λ μλ₯Ό λ무 λμ΄λ₯Ό μ§μ νκ³ , λ¨μ λ무λκ³Ό Mμ λΉλ‘ν΄μ μ΄μ§νμμ νλ€λ©΄ μκ°λ³΅μ‘λλ O(log n) μ΄λ―λ‘
O(N) λ³΄λ€ λ λΉ λ₯΄κ² λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€.
π± μ½λ λ° νμ΄
μ€κ°κ°μ "(μ΅μκ° + μ΅λκ°) / 2" μΌλ‘ ꡬν μ μλ€. μ΄μ§νμμΌλ‘ λ²μ/2 μ© νλ©΄μ λ΅μ΄ μ‘΄μ¬ κ°λ₯ν λ²μλ₯Ό μ€μ¬λκ°λ€!
μ½λμ μ£Όμμ λ¬μλ¨μΌλ μ²μ²ν μ½μ΄λ³΄λ©΄ μ΄λΆνμμ΄ μ΄λ€ μμΌλ‘ λμνλμ§ μ μ μ μμ κ²μ΄λΌ μκ°νλ€.
νλ² κ·Έλ¦ΌμΌλ‘ κ·Έλ €κ°λ©΄μ μ΄ν΄νλ κ²μ μΆμ²νλ€!
π± λλ μ
μ΄μ§νμμ λν΄μ λ°°μ°κ² λ λ¬Έμ μλ€, κ°λ μ μκ³ μμμ§λ§ μ½λλ‘ μμ±νλ κ²κ³Ό μ νλ κ²μ μ°¨μ΄κ° λκ²
μ»Έλ κ² κ°λ€. κ·Έλλ μ΄λ‘ μ μΌλ‘ μκ³ μμκΈ° λλ¬Έμ μ΄ν΄νλλ° ν¬κ² μ΄λ ΅μ§ μμλ€.
μ΄λΆνμμ μ λ°°μλκ³ νμ©ν μ μμ μ λλ‘ μμ μ΅κ² μ°μ΅νκ² λ€.
'Algorithm > - Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] λ°±μ€ 2667 λ¨μ§λ²νΈλΆμ΄κΈ° (JAVA) (0) | 2024.01.03 |
---|---|
[BOJ] λ°±μ€ 14499 μ£Όμ¬μ ꡴리기 (JAVA) (2) | 2024.01.03 |
[BOJ] λ°±μ€ 16953 A->B (JAVA) (2) | 2023.12.26 |
[BOJ] λ°±μ€ 14938 μκ°κ·ΈλΌμ΄λ (JAVA) (4) | 2023.12.25 |
[BOJ] λ°±μ€ 18111 λ§μΈν¬λννΈ (JAVA) (2) | 2023.12.21 |
λλ§μ κ°λ° λ°μ΄ν°λ² μ΄μ€!
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!