
어이없는 이유로 하루 동안 삽질했다...
start + end에 괄호를 사용하지 않았으며,, bin 함수의 인자로 brr을 주고서 arr로 작성했다...
그래도 lower bound 알고리즘에 대해 알게 되었다.
그리고 파이썬 라이브러리로 이미 제공한다는 사실도..!
from sys import stdin
q = int(stdin.readline())
def bin(brr, k): #이진 탐색
start = 0
end = len(brr)
while start < end:
mid = (start + end) // 2 #mid = 2 arr[mid] = 3
if k <= brr[mid]: #범위를 줄여서 검사해야됨
end = mid
else:
start = mid + 1
return end
for i in range(q):
cnt = 0
a, b = map(int, (input().split()))
arr = list(map(int, stdin.readline().split()))
brr = list(map(int, stdin.readline().split()))
arr.sort()
brr.sort()
for j in range(a):
if arr[j] <= brr[0]: #검사할 필요 x
pass
elif arr[j] > brr[-1]:
cnt += b
else:
cnt += bin(brr, arr[j])
print(cnt)
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
백준 > 2309 일곱 난쟁이 (0) | 2024.04.04 |
---|---|
백준 > 2805 나무 자르기 (0) | 2024.04.02 |
백준 > 2869 달팽이는 올라가고 싶다 (0) | 2024.03.30 |
백준 > 9012 괄호 (0) | 2024.03.28 |
백준 > 1920 수 찾기 (0) | 2024.03.10 |