λ°±μ€ λΈλ‘κ·Έμμ λ³Έ κΈμ μ¬κ΅¬μ±ν κΈμ΄κ³ , λ°±μ€μ΄ λ λΌκ°μ μμλ‘ μμ±ν κΈμ. λκ° μ°μ ¨λμ§ λͺ¨λ₯΄κ² λλ° μλ €μ£Όμλ©΄ μΆμ² λ¨κΉ
λ λκ° μλλ©΄ μ΄λΆ νμμ΄λ 곡λΆνλΌλ μλ μΌμΈμ λ§μ μ μ겨λ€μ κ².
λ¬Έμ λ¨μν
μμ΄ μ΄ μκ³ λ₯Ό λ§μ‘±νλ μ μ κ° μ μΌν λ μ μ λ₯Ό μ°ΎμΌμμ€.
λ°©λ²λ‘
, λΌλ λ³μλ₯Ό μ μΈνλ€.
κ° λκΈ° μ κΉμ§ λ€μμ λ°λ³΅νλ€:
λΌκ³ μ μνκ³ , λΌλ©΄ λ₯Ό, μλλ©΄ λ₯Ό μννλ€.
μ λΉμ±
, κ° μ μ§λλ―λ‘ λ μ μ§λλ€.
λ°λΌμ κ° λμλ€λ©΄ μμ μ μ μλ€.
μ½λ
int lo = 1, hi = n;
while (lo + 1 < hi) {
int mi = (lo + hi) / 2;
(a[lo] == a[mi] ? lo : hi) = mi;
}
μ μ©
μ΄ λ°©λ²μ μ¬λ¬ λ¬Έμ μ μ μ©νκΈ° μν΄μλ, μ°μ κ°μ λ κ°μ§ μ’ λ₯λ‘ λ³νν΄μΌ νλ€.
μλ₯Ό λ€μ΄, μ¦κ°νλ μμ΄ μ κ° κ° μ‘΄μ¬νλμ§, μ‘΄μ¬νλ€λ©΄ μ΄λ μμΉμ μ‘΄μ¬νλμ§ μ°Ύκ³ μΆμ μ μλ€.
μμ΄ μ λν΄ , , λΌ μ μνκ³ μμμ μ€λͺ ν μ΄λΆ νμμ μννμ.
μ²μμΌλ‘ κ° λλ μμΉ λ₯Ό μ°Ύμ μ μλλ°, μΈμ§, μΈμ§ μ λλ§ μ²΄ν¬νλ©΄ μμ΄μ κ° μ‘΄μ¬νλμ§μ μ΄λ μμΉμ μ‘΄μ¬νλμ§λ₯Ό μ°Ύμ μ μλ€.
μ΄μ κ°μ΄ κ±°μ λͺ¨λ μ΄λΆ νμ λ¬Έμ λ κ°μ λ μ’ λ₯λ‘ λ³νν¨μΌλ‘μ¨ μ΄ λ°©λ²λ‘ μ μ μ©ν μ μλ€.
No comments yet.