관리 메뉴

JIE0025

[파이썬] bisect - 정렬된 리스트에서 특정 수의 개수 구하기 본문

Algorithm/관련문법

[파이썬] bisect - 정렬된 리스트에서 특정 수의 개수 구하기

Kangjieun11 2023. 2. 3. 22:37
728x90

 

1) 정렬된 리스트에서, bisect는 이진탐색을 수행한다. (log n)

2) bisect_left(list, value) 는 list에 value를 넣었을때 어디에 들어가야하는지에 대하여, 가장 왼쪽인덱스를 반환한다.

3) bisect_right(list, value)는 오른쪽 인덱스를 반환한다

 

-> 따라서 bisect_right() - bisect_lect() 는 원소의 개수가 될 수 있다. 

 

 

import sys
from bisect import bisect_left, bisect_right

n,x = map(int,input().split())
li = list(map(int,input().split()))

li.sort()

count = bisect_right(li,x) - bisect_left(li,x)

if count == 0 : print(-1)
else : print(count)