import heapq
def solution(A, B):
answer = 0
A = [-i for i in A]
B = [-i for i in B]
heapq.heapify(A)
heapq.heapify(B)
while A and B:
a = -heapq.heappop(A)
b = -heapq.heappop(B)
if b > a:
answer += 1
else:
heapq.heappush(B,-b)
return answer
풀이
(이거 혹쉬 동적계획법 맞나요..?)
heapq로 풀이했고, 최솟값만 뽑는다는 특징을 가지고 있어서 모든 값에 -를 붙여서 최댓값을 빼도록 변경했다.
A, B 중 하나라도 빈 리스트가 되면 while문을 멈춘다. a,b를 비교해서 b가 더 클 경우에만 answer += 1을 하고, 아닐 경우엔 B에만 -b를 추가한다.