
처음에 짠 코드
n, m = list(map(int, input().split()))
arr = list(map(int, input().split()))
start = arr[0]
end = arr[-1]
count = 0
while start <= end:
mid = (start + end) // 2
if arr[mid] == m:
count = arr.count(m)
elif arr[mid] > m:
end = mid - 1
else:
start = mid + 1
print(count)
BS를 적용한 코드
from bisect import bisect_left, bisect_right
def count_by_range(array, left_value, right_value):
right_index = bisect_right(array, right_value)
left_index = bisect_left(array, left_value)
return right_index - left_index
n, x = map(int, input().split())
array = list(map(int, input().split()))
count = count_by_range(array, x, x)
if count == 0:
print(-1)
else:
print(count)
'Programming > 1 Day 1 Commit' 카테고리의 다른 글
[이취코] 효율적인 화폐 구성 (Python3) (0) | 2024.03.06 |
---|---|
[이취코] 1로 만들기 (Python3) (0) | 2024.03.06 |
[이취코] 떡볶이 떡 만들기 (Python) (0) | 2024.03.06 |
[BaekJoon] 바이러스 (Python3) (0) | 2024.02.17 |
[BaekJoon] 치킨치킨치킨 - 실버4 (Python3) (0) | 2024.02.16 |