[이코테] 이분탐색 - 정렬된 배열에서 특정 수의 개수 구하기 with 파이썬

JIN KANG·2022년 10월 24일
0

이코테

목록 보기
27/29
post-thumbnail

1. 문제

  • N개의 원소 중에서 x의 등장 횟수를 구하라

입력 조건

  • 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. 배운점

  • bisect 모듈 리마인드

참조

  • 이것이 취업을 위한 코딩테스트다. with 파이썬
profile
성장하는 데이터 분석가

0개의 댓글