본문 바로가기
코딩/백준-파이썬

백준 10816번: 숫자 카드2

by 철없는민물장어 2022. 7. 20.
728x90
반응형

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

 

10816번: 숫자 카드 2

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

www.acmicpc.net

문제

숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.

입력

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

셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다.


 

...

bisect_left(array,target)

bisect_right(array,target)

두 함수를 이용하면 간단히 개수를 구할 수 있다..

from bisect import bisect_left, bisect_right
import sys

n=int(input())
data=sys.stdin.readline().split() #숫자카드에 적혀있는 정수
m=int(input())
search_num=sys.stdin.readline().split() #몇갠지구해야할카드

data.sort()
def binary_search(i):
    return bisect_right(data,i)-bisect_left(data,i)

for i in search_num:
    print(binary_search(i))
728x90
반응형

'코딩 > 백준-파이썬' 카테고리의 다른 글

백준 9095번: 1,2,3 더하기  (0) 2022.07.21
백준 2206번: 벽 부수고 이동하기  (0) 2022.07.21
백준 1920번: 수 찾기  (0) 2022.07.20
백준 1463번: 1로 만들기  (0) 2022.07.19
백준 2468번: 안전 영역  (0) 2022.07.18

댓글