λ¬Έμ νμ
μ€λ³΅λμ§ μλ, μ λ ¬λ μ μ λ°°μ΄μ΄ μ£Όμ΄μ§λ€.
target
μ ν΄λΉνλ μμμ μμΉλ, μλ€λ©΄ μ½μ
νμλ μ λ ¬μ μ μ§ν μ μλ μΈλ±μ€μ μμΉλ₯Ό λ°νν΄μΌνλ€.
κ·Έλ¦¬κ³ μκ° λ³΅μ‘λλ O(logN) μ΄μ΄μΌ νλ€.
νμ΄
1οΈβ£ μ΄λΆ νμ
π‘ λ μ€λ₯Έ Idea
μκ° λ³΅μ‘λλ₯Ό O(logN) μΌλ‘ ν΄μΌνλ€λ λ§μ 보μλ§μ, μ΄λΆνμμΌλ‘ ν΄κ²°ν΄μΌκ² ꡬλ μκ°μ΄ λ€μλ€.
μ΄λΆνμμ ꡬνν΄μ, target μ΄ λ€μ΄κ° μ μλ μ μ ν μμΉλ₯Ό μ°ΎμΌλ©΄ λλ€.
nums
κ° μ λ ¬λμ΄μκΈ° λλ¬Έμ
target
μ΄ nums
μ μ΄λ ν μμλ³΄λ€ μκ±°λ ν° κ²½μ°λ μμ μμ μ²λ¦¬ν΄μ£Όμλ€.
μ΄λΆνμμμλ, μ λ ¬μ μ μ§νλ©΄μ target
κ° μ΄νλ₯Ό λ°°μ΄μ μ
λ ₯ν μ μλ μΈλ±μ€λ₯Ό λ°ννλλ‘ κ΅¬μ±νμλ€.
class Solution {
public int searchInsert(int[] nums, int target) {
if (target < nums[0]) {
return 0;
} else if (target > nums[nums.length - 1]) {
return nums.length;
}
int left = 0, right = nums.length - 1;
while (left < right) {
int mid = (left + right) / 2;
if (target <= nums[mid]) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
}
κ²°κ³Ό
π νκ³
μμ μ λ§μ΄ μ°μ΅ν΄λ³΄μλ μ΄λΆ νμμ κ°μ₯ κΈ°μ΄μ μΈ λ¬Έμ λΌμ μ½κ² ν΄κ²°ν μ μμλ€.
κΈ°λ³Έ λ¬Έμ λ₯Ό νμ΄λ³΄λ©΄μ, μ΄λΆνμμ μ리λ₯Ό λ€μ μκ°ν΄ λ³Ό μ μμ΄μ μ’μ μκ°μ΄μλ€.