BOJ - 10816

주의·2024년 1월 28일
0

boj

목록 보기
128/214

백준 문제 링크
숫자 카드2

❓접근법

  1. bisect 모듈의 bisect_left, bisect_right 함수를 썼다.
  2. 상근이가 가지고 있는 숫자 카드를 정렬하고,
    구해야 할 숫자카드의 왼쪽과 오른쪽 인덱스가 어떻게 되는지 찾는다.
    예를 들어,
    가지고 있는 카드가 [-10, -10, 2, 3, 3, 6, 7, 10, 10, 10] 이고,
    구해야 할 숫자카드가 10일 때
    bisect_left = 7(해당 인덱스), bisect_right = 10(해당 인덱스의 + 1)
    이므로 right에서 left를 빼면 10의 개수인 3이 나오게 된다.
  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)

0개의 댓글