백준(BOJ)
[Python/파이썬] - 백준(BOJ) 1092번 : 배
phanre
2022. 5. 26. 13:18
https://www.acmicpc.net/problem/1092
1092번: 배
첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보
www.acmicpc.net
check 함수를 생성하여 내림차순 정렬된 box함수를 탐색
만약 crain[i]가 box의 최소값보다 적으면 crain 이후 값 모두 del 처리
box를 모두 탐색하기 전에 crain이 모두 del되면 -1 return
모두 탐색한다면 반복 횟수 answer return
def check():
answer = 0
while box:
for c in crain:
k = 0
while k < len(box):
if box[k] <= c:
del box[k]
break
else:
if c < box[-1]:
i = len(crain)-1
while crain[i] <= c:
i -= 1
crain.pop()
if not crain:
return -1
break
else:
k += 1
answer += 1
return answer
n = int(input())
crain = sorted(list(map(int,input().split())),reverse=True)
m = int(input())
box = sorted(list(map(int,input().split())),reverse=True)
print(check())