본문 바로가기
알고리즘 풀이/이진 탐색

[백준/파이썬] 10816번: 숫자 카드 2

by developer jini 2023. 1. 6.
728x90

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

이진 탐색 라이브러리를 활용하여 문제를 풀이하였음.

import sys
from bisect import bisect_left, bisect_right

n = sys.stdin.readline()
a = sorted(list(map(int, sys.stdin.readline().split())))

m = sys.stdin.readline()
b = list(map(int, sys.stdin.readline().split()))


# 데이터의 개수를 반환하는 함수
def count_by_range(a, value):
    right_index = bisect_right(a, value)
    left_index = bisect_left(a, value)
    return right_index - left_index


for i in b:
    print(count_by_range(a, i), end=" ")
728x90

댓글