βΌβΌβΌ μ΄μ κΈ λ³΄λ¬κ°κΈ° βΌβΌβΌ
2021/02/20 - [μ½λ©ν μ€νΈ] - μ½λ©ν μ€νΈ κ΄λ ¨ λ΄μ© μ 리 (1)
μ½λ©ν μ€νΈ κ΄λ ¨ λ΄μ© μ 리 (1)
그리λ ; νμ¬ κ°μ₯ μ’μ 보μ΄λ κ²λ§μ μ ννλ μκ³ λ¦¬μ¦ - νμ¬ μν©μμ μ§κΈ λΉμ₯ μ’μ κ²λ§ κ³ λ₯΄λ λ°©λ² - λ§€ μκ° κ°μ₯ μ’μ보μ΄λ κ²μ μ ννλ©°, νμ¬μ μ νμ΄ λμ€μ λ―ΈμΉ μν₯μ λν΄
wisecoding.tistory.com
νμ΄μ¬ ννμ νΉμ§
- νμ΄μ¬μμ ννμ μμλ‘νλ 리μ€νΈκ° μμ λ, 리μ€νΈλ₯Ό μ λ ¬νλ©΄ κΈ°λ³Έμ μΌλ‘ κ° ννμ ꡬμ±νλ μμμ μμμ λ§κ² μ λ ¬λλ€λ νΉμ§μ΄ μλ€.
νμ΄μ¬ count ν¨μ
- ν΄λΉ 리μ€νΈμμ κ°μ΄ λͺκ° μλμ§ λ°ννλ ν¨μ
μ΄μ§νμ(Binary Search) ; νμ λ²μλ₯Ό λ°μΌλ‘ μ’νκ°λ©° λΉ λ₯΄κ² νμνλ μκ³ λ¦¬μ¦
- μ΄μ§νμμ λ°°μ΄ λ΄λΆμ λ°μ΄ν°κ° μ λ ¬λμ΄ μμ΄μΌλ§ μ¬μ©ν μ μλ μκ³ λ¦¬μ¦
- νμ λ²μλ₯Ό μ λ°μ© μ’νκ°λ©° λ°μ΄ν°λ₯Ό νμνλ νΉμ§μ΄ μμ
- μ°ΎμΌλ €λ λ°μ΄ν°μ μ€κ°μ μ μμΉν΄ μλ λ°μ΄ν°λ₯Ό λ°λ³΅μ μΌλ‘ λΉκ΅ν΄μ μνλ λ°μ΄ν°λ₯Ό μ°Ύλ κ²
- νμ λ²μκ° 2,000λ§μ λμ΄κ°λ κ²½μ°, μ²λ¦¬ν΄μΌ ν λ°μ΄ν°μ κ°μλ κ°μ΄ 1,000λ§ λ¨μ μ΄μμΌλ‘ λμ΄κ°λ κ²½μ°
- μκ°λ³΅μ‘λ O(logN)
βΆ μ¬κ·ν¨μ μ¬μ©
# μ¬κ·ν¨μλ‘ κ΅¬νν μ΄μ§ νμ μμ€μ½λ
def binary_search(array, target, start, end):
if start>end:
return None # μ‘΄μ¬νμ§ μμ
mid = (start+end)//2 # λͺ« μ°μ°μ int((start+end)/2)
# targetμ΄ μ‘΄μ¬νλ©΄ μΈλ±μ€ 리ν΄
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(array, target, 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 # μμ
result=binary_search(array, target,0,n-1)
if result==None:
print("μ‘΄μ¬νμ§ μμ")
else:
print(result+1)
λΉ λ₯΄κ² μ λ ₯λ°κΈ°
- λ°μ΄ν°μ κ°μκ° 1000λ§κ° μ΄μ / νμ λ²μκ° 1000μ΅ μ΄μμΈ κ²½μ°
- sys λΌμ΄λΈλ¬λ¦¬μ readline() ν¨μλ₯Ό μ΄μ©ν κ²
import sys
input_data = sys.stdin.readline().rstrip() # rstrip() νμ!!!!
λ¬Έμμ΄ λ€μ§κΈ°
name = 'james'
print(name[::-1])
μ°Έκ³ λ¬Έν λ° μΆμ² | λλλΉ. 2020. μ΄κ²μ΄ μ·¨μ€μ μν μ½λ© ν μ€νΈλ€ with νμ΄μ¬. νλΉλ―Έλμ΄
'μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[KAKAO|μΉ΄μΉ΄μ€ κΈ°μΆλ¬Έμ ] λ©λ΄ 리λ΄μΌ (0) | 2021.04.21 |
---|---|
[KAKAO|μΉ΄μΉ΄μ€ κΈ°μΆλ¬Έμ ] μ κ· μμ΄λ μΆμ² (0) | 2021.04.21 |
μ½λ©ν μ€νΈ κ΄λ ¨ λ΄μ©μ 리 (4) (0) | 2021.03.15 |
μ½λ©ν μ€νΈ κ΄λ ¨ λ΄μ©μ 리 (3) (0) | 2021.03.11 |
μ½λ©ν μ€νΈ κ΄λ ¨ λ΄μ© μ 리 (1) (2) | 2021.02.20 |