forked from ndb796/python-for-coding-test
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path3.py
More file actions
26 lines (24 loc) Β· 915 Bytes
/
3.py
File metadata and controls
26 lines (24 loc) Β· 915 Bytes
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):
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(μ°Ύκ³ μ νλ κ°)μ μ
λ ₯ λ°κΈ°
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)