[TIL] - 2023.04.13
π₯ μ΄μ§ νμ
- λ°°μ΄μ΄ μ λ ¬λμ΄ μμ΄μΌ νλ©°, νλμ λ°°μ΄μμ λ°λ° μͺΌκΉ¨μ κ°μ μ°Ύλ νμμ΄λ€.
- μκ° λ³΅μ‘λλ O(logN)μ΄λ€
μ΄μ§ νμμ κΈ°λ³Έ ν
from sys import stdin as s
s = open('input.txt','rt')
N, M = list(map(int,s.readline().split()))
arr = list(map(int,s.readline().split()))
def binary_search(array, target,start,end):
if start > end:
return None
mid = (start + end) //2
if array[mid] == target:
return mid
elif array[mid] >target:
return binary_search(array,target,start,mid-1)
else :
return binary_search(array,target,mid+1,end)
result = binary_search(arr,M,0,N-1)
if result == "None":
print("μ‘΄μ¬νμ§ μμ΅λλ€.")
else:
print(result + 1)
λ°λ³΅λ¬ΈμΌλ‘ μμ±ν μ΄μ§ νμ ν
def binary_search(array, target, start, end):
while start <= end:
mid = (start + end) // 2
# μνλ κ° μ°Ύμ κ²½μ° μΈλ±μ€ λ°ν
if array[mid] == target:
return mid
# μνλ κ°μ΄ μ€κ°μ μ κ°λ³΄λ€ μμ κ²½μ° μΌμͺ½ λΆλΆ(μ λ°μ μΌμͺ½ λΆλΆ) νμΈ
elif array[mid] > target:
end = mid - 1
# μνλ κ°μ΄ μ€κ°μ μ κ°λ³΄λ€ ν° κ²½μ° μ€λ₯Έμͺ½ λΆλΆ(μ λ°μ μ€λ₯Έμͺ½ λΆλΆ) νμΈ
else:
start = mid + 1
return None
n, target = list(map(int, input().split()))
array = list(map(int, input().split()))
result = binary_search(array, target, 0, n - 1)
if result is None:
print('μμκ° μ‘΄μ¬ X')
else:
print(result + 1)
λΈλ£¨νΈ ν¬μ€ λ¬Έμ 리μ€νΈ
NO | LV | μ ν | μ λͺ© | λΉκ³ |
---|---|---|---|---|
1110 | B1 | λΈλ£¨νΈ ν¬μ€ | λνκΈ° μ¬μ΄ν΄ | μ±κ³΅ |
9095 | S3 | λΈλ£¨νΈ ν¬μ€ | 1,2,3 λνκΈ° | μ±κ³΅ |
1182 | S2 | λΈλ£¨νΈ ν¬μ€ | λΆλΆ μμ΄μ ν© | μ±κ³΅ |
μμ μΌμ μ΅μ μ λ€νλΌ
" ν볡μ μμ μΌμ ν΅ν΄ κΉ¨λ«κ² λλ€. κ·Έλ¦¬κ³ μ΄κ²μ κ²°μ½ μμ μΌμ΄ μλλ€. "
- μ λ Ό, λμ€κ²λ€μ€μ κ°μμμ μΈμ©, νμν μ² νμλ€μ μΆ 7. 1. 26
μ’μ μ¬λμ΄λΌλ ννμ κ·Έκ° ν λ§ λλ¬Έμ΄ μλλ€. κ·Έκ° νν λ°λμ§ν νλ λλ¬Έμ λ§λ€μ΄μ§λ€. μ΄λ λ§λ² κ°μ λ¨ νλ²μ νλμ΄ μ΄λ£¨μ΄ λ΄λ κ²μ΄ μλλΌ λ°λμ§ν μ νμ λμ μ΄ λ§λ€μ΄ λ΄λ κ²μ΄λ€.
λ μμ μλ μΌμ μ§μ€νλΌ
" λ§€μΌλ§€μΌ λ₯μ³μ¬ λͺ¨λ μΌμ λ‘λ§μΈλ€μ²λΌ κ°κ±΄ν λ§λ―μΌλ‘ μ²λ¦¬νλΌ. μ격νκ³ λ¨μν μμ, μ μ κ³Ό μμ , κ·Έλ¦¬κ³ κ³΅ν무μ¬ν¨μΌλ‘ λνλΌ, μ΄κ² μΈμ λ€λ₯Έ μ¬νμ μκ°νμ§ λ§λΌ. ν©λ¦¬μ μ΄μ±μ΄ κ°μ μ νλλ¦¬μ§ μλλ‘ νκ³ , μ‘λ μ λ§€μ΄μ§ μμΌλ©°, κ·Ήμ μΈ μν©κ³Ό μλ§μ¬, 곡μ ν λͺ«μ λν λΆνμ μ μ¬μλΌ. λ§μ§λ§μΈ κ²μ²λΌ μ£Όμ΄μ§ μΌμ μ κ·ΌνλΌ. μ΄ λͺκ°μ§λ₯Ό λ°°μ°λ κ²λ§μΌλ‘λ νμλ‘μ΄ μΆκ³Ό λ μ€ν μΈμμ μμ±ν μ μμ κ²μ΄λ€. μ΄λ₯Ό λμμμ΄ μ€μ²ν μ μλ€λ©΄ μ λ μ°λ¦¬μκ² λ λ§μ κ²μ μꡬνμ§ μλλ€. "
- λ§λ₯΄μΏ μ€ μμ°λ 리μ°μ€, λͺ μλ‘, 2.5
μλ§μ μ₯μ λ¬Ό μμμ λ€λ₯Έ μ¬λμ μ κ²½ μ°μ§ μκ³ λ¬΅λ¬΅ν λμ κΈΈμ κ±Έμ΄κ° μ μμ΄μΌ νλ€.
λ§μλ§μΈ κ²μ²λΌ μ£Όμ΄μ§ κ³Όμ μ λμ νλΌ.
μ¬λ
μ΄ λΌμ΄λ€μ§ μλ ν μ°λ¦¬μκ² μ£Όμ΄μ§ κ³Όμ λ μΈμ λ λ¨μνλ€.
λͺ¨λ κ²μ μ νμλ μλ€.
" λ°μ νκ³ μ νλ€λ©΄ μΈμ μΈ λ¬Έμ (μ¬λ¬Ό,νν)μ 무κ°κ°ν΄μΌ νκ³ κ·Έ μμμ μ΄λ¦¬μμμ λ³Ό μ μμ΄μΌ νλ€. λ§μ΄ μκ³ μλ κ²μ²λΌ 보μ΄λ κ²μ κ²½κ³νλΌ. λκ΅°κ° λΉμ μ μ€μν μ¬λμΌλ‘ κ°μ£Όνλ€λ©΄, μ€μ€λ‘λ₯Ό λΆμ νλΌ "
- μν½ν ν μ€, μ₯μΌμ΄λ¦¬λμ¨, 13a
μ μ¬μ μνμ λ μ΄μ ν₯λΆνμ§λ λΆλ Ένμ§λ μμΌλ €λ©΄ μΌλ§λ λ ν΄μμ μ·¨ν΄μΌ ν κΉ?
λΉμ₯ λμμ μΌμ μ§μ€νμ. λ μμ μλ μΌμ μ§μ€μ νλ©΄μ μμ μΌλ μ΅μ μ λ€νμ. μμν νΈμμ ν λ°©μΈ ν λ°©μΈ λ¨μ΄μ§λ λ¬Όλ°©μΈμ΄ ν° λ¬Όκ²°μ΄ λ κ²μ΄λ€.
DFS, BFSλ λΈλ£¨νΈν¬μ€ νλ λ°©λ² μ΅μμΉ μμλλ° μ¬λ¬ λ¬Έμ λ₯Ό νλ€λ³΄λ μν 1μ£Όμ°¨ λ¬Έμ λ€ μ λΆ μμ νμμΌλ‘ ν΄κ²°νκ³ , λ€μ μ΄λΆ νμ, μ€ν, ν, λΆν μ 볡 λ¬Έμ λ λ§μ°¬κ°μ§λ‘ μ¬λ¬ λ¬Έμ λ€μ νμ΄λ³΄λ©΄μ μΌλ¨ λ¬Έμ μ μ΅μν΄μ ΈμΌ ν κ² κ°λ€.