1. 문제
입력 조건
- n은 1 ~ 1000000
- x는 -1e9 ~ 1e9
2. 아이디어
- bisect 모듈을 사용해서 구한다.
- bisect_left : 찾고자 하는 값과 같은 값을 그 값의 가장 왼편에 넣는다는 가정하에 인덱스, 찾고자 하는 숫자의 첫번째 인덱스
- bisect_right : 찾고자 하는 값과 같은 값을 그 값의 가장 오른편에 넣는다는 가정하에 인덱스, 찾고자 하는 숫자의 끝 인덱스 + 1
3. 예제코드
from bisect import bisect_left, bisect_right
n, x = map(int, input().split())
nums = list(map(int, input().split()))
diff = bisect_right(nums, x) - bisect_left(nums, x)
if diff == 0 :
print(-1)
else :
print(diff)
4. 배운점
참조
- 이것이 취업을 위한 코딩테스트다. with 파이썬