백준 문제 링크
숫자 카드2
- bisect 모듈의 bisect_left, bisect_right 함수를 썼다.
- 상근이가 가지고 있는 숫자 카드를 정렬하고,
구해야 할 숫자카드의 왼쪽과 오른쪽 인덱스가 어떻게 되는지 찾는다.
예를 들어,
가지고 있는 카드가 [-10, -10, 2, 3, 3, 6, 7, 10, 10, 10] 이고,
구해야 할 숫자카드가 10일 때
bisect_left = 7(해당 인덱스), bisect_right = 10(해당 인덱스의 + 1)
이므로 right에서 left를 빼면 10의 개수인 3이 나오게 된다.- 구해야 할 숫자카드의 개수를 구해 answer에 넣어준 후 출력하면 끝!
from bisect import bisect_left, bisect_right
N = int(input())
array_N = list(map(int, input().split()))
M = int(input())
array_M = list(map(int, input().split()))
array_N.sort()
answer = [0] * M
for i in range(len(array_M)):
x = bisect_right(array_N, array_M[i]) - bisect_left(array_N, array_M[i])
answer[i] = x
print(*answer)