728x90
반응형
https://www.acmicpc.net/problem/10816
문제
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 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 |
댓글