배 [백준 1092번] (파이썬)

오준혁·2023년 6월 21일
0

알고리즘

목록 보기
8/29

문제


배 [백준 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)

0개의 댓글