[BOJ]1092 배
✔️ 문제 링크
https://www.acmicpc.net/problem/1092
💡 핵심 아이디어
1️⃣ 매 시간마다 가장 무거운 박스를 들 수 있는 크레인 순으로 가장 무거운 박스부터 나른다.
2️⃣ 나른 박스는 리스트에 제거하며 시간 절약을 위해 크레인 배열과 박스 배열을 내림차순 정렬후 리스트를 순회하며 작업을 수행한다.
⭐️ 소스 코드
if __name__ == '__main__':
N = int(input())
crane_list = map(int, input().split())
M = int(input())
box_list = map(int, input().split())
crane_list = sorted(crane_list, key = lambda x : -x)
box_list = sorted(box_list, key = lambda x : -x)
ans = 0
flag = False
while(True):
if len(box_list) == 0:
break
if crane_list[0] < box_list[0]:
ans = -1
break
flag = False
for crane in crane_list:
temp = 0
if len(box_list) == 0:
ans += 1
flag = True
break
for box in box_list:
if crane >= box:
temp = box
break
# 박스를 없애줌
if temp != 0:
box_list.remove(temp)
if flag:
break
ans += 1
print(ans)
Author And Source
이 문제에 관하여([BOJ]1092 배), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ganta/BOJ1092-배저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)