풀이 방향은 금방 알았지만 구현 과정에서 많이 짜증났던 문제.
파이썬 포문에선 인덱스 변수 증감이 안 되다 보니 억지로 맞추다가 2번정도 틀렸다
다른 사람들 풀이보니까 remove를 썼던데 그냥 나도 remove를 썼다면 한번에 풀지 않았을까란 생각이 든다.
지문 분석
무거운 크레인은 무거운 박스를 우선으로 들어야 한다.
가벼운 것 부터 들게 된다면, 박스는 점점 무거워지고, 그 과정에서 노는 크레인들이 발생하기 때문이다.
박스와 크레인을 내림차순 정렬해야 한다.
완전 탐색
옮길 박스가 현재 매달려는 크레인에 달 수 있는지 본다.
만약, 그렇지 않다면 해당 박스는 건너뛰고 다음 박스를 달 수 있는지 본다.
이렇게 모든 크레인을 한번씩 순회하면 전체 시간을 1 증가시킨다.
이제 남은 박스들을 가지고 위의 과정을 반복하면 된다.
더보기
def main():
N = int(input())
cranes = list(map(int, input().split()))
cranes.sort(reverse=True)
M = int(input())
boxes = list(map(int, input().split()))
boxes.sort(reverse=True)
if cranes[0] < boxes[0]:
print(-1)
return
answer = 0
while boxes:
for crane in cranes:
if not boxes:
break
elif crane < boxes[-1]:
break
for box in boxes:
if crane >= box:
boxes.remove(box)
break
answer += 1
print(answer)
if __name__ == "__main__":
main()
'알고리즘 > 백준' 카테고리의 다른 글
백준[2513] 통학버스 (Python3) (0) | 2022.11.05 |
---|---|
백준[17615] 볼 모으기 (Python3) (0) | 2022.11.05 |
백준[17616] 등수 찾기 (Python3) (0) | 2022.11.05 |
백준[15973] 두 박스 (Python3) (0) | 2022.11.05 |
백준[19585] 전설 (Python3) (0) | 2022.11.05 |