forked from ndb796/python-for-coding-test
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2.py
26 lines (24 loc) Β· 951 Bytes
/
2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# μ΄μ§ νμ μμ€μ½λ ꡬν (μ¬κ· ν¨μ)
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)
# n(μμμ κ°μ)κ³Ό target(μ°Ύκ³ μ νλ κ°)μ μ
λ ₯ λ°κΈ°
n, target = list(map(int, input().split()))
# μ 체 μμ μ
λ ₯ λ°κΈ°
array = list(map(int, input().split()))
# μ΄μ§ νμ μν κ²°κ³Ό μΆλ ₯
result = binary_search(array, target, 0, n - 1)
if result == None:
print("μμκ° μ‘΄μ¬νμ§ μμ΅λλ€.")
else:
print(result + 1)