알고리즘/백준(BOJ)

[백준/알고리즘] #7795: 먹을 것인가 먹힐 것인가 [파이썬(python)/이분탐색(binary search)

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

 

7795번: 먹을 것인가 먹힐 것인가

심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을

www.acmicpc.net

이분탐색을 이용해서 정렬하는 로직을 짜는 문제다.

 

파이썬 코드 

#7795_먹을것인가 먹힐것인가
import sys
input = sys.stdin.readline

def bin_search(target, data):
    start = 0
    end = len(data)-1
    res = -1
    while start <= end:
        mid = (start+end) // 2
        if data[mid] < target:
            res = mid
            start = mid + 1
        else:
            end = mid -1
    return res

T = int(input())

for _ in range(T):
    N, M = map(int, input().split())
    A = sorted(list(map(int, input().split())))
    B = sorted(list(map(int, input().split())))
    cnt=0
    for i in A:
        cnt += bin_search(i, B) + 1

    print(cnt)