문제
배 [백준 1092번]
https://www.acmicpc.net/problem/1092
풀이
생각하는데 별로 어렵진 않은 문제였지만 실수한 부분이 있어서 기록한다. 처음 접근은 크레인과 박스를 모두 내림차순으로 정렬하고 크레인보다 박스의 무게가 적으면 리스트에서 해당 박스 무게를 없애주고 박스 리스트가 빌 때까지 반복이다.
실수점
- 남은 박수의 수보다 크레인의 수가 더 많을 때를 고려하지 못해서 런타임 에러가 떴다
- 검사하는 인덱스의 크레인이 가능한 무게보다 박스의 무게가 더 크면 다음 박스를 검사하여야하는데 continue 하고 다음 크레인과 다음 박스를 검사하는 탓에 틀렸다.
코드
import sys
n = int(input())
crane = list(map(int, input().split()))
m = int(input())
boxes = list(map(int, input().split()))
crane.sort(reverse=True)
boxes.sort(reverse=True)
minute = 0
if crane[0] < boxes[0]:
print(-1)
sys.exit()
while boxes:
temp = []
for cra in crane:
for box in boxes:
if cra >= box:
boxes.remove(box)
break
minute += 1
print(minute)