처음에 풀이 할때는 check 변수를 두고 일일이 크레인 리스트를 돌려가며 확인했다. 결과는 오답을 받았는데 이는 무작정 작은 것들 먼저 크레인과 비교하다 보니 큰 것과 작은 것들을 섞어 넣었을 때 더 최적의 결과를 내는 경우를 무시하는 결과를 가져왔기 때문이었다.
그렇기에 박스와 크레인의 정렬을 오름차순이 아닌 내림차순으로 다시 정렬하였고 큰 것부터 싣는 방식으로 바꾸어서 문제를 풀어냈다.
n = int(input())
crane = list(map(int,input().split()))
m = int(input())
box = list(map(int,input().split()))
crane.sort(reverse=True)
box.sort(reverse=True)
time = 0
check_crane = 0
if max(box) > max(crane):
print(-1)
else:
while box:
if not box:
break
for i in crane:
for j in box:
if i >= j:
box.remove(j)
break
time += 1
print(time)