여름의 서재
[SWEA] 5201_컨테이너 운반 본문
728x90
📕 문제
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do
💡 풀이법
1. 화물 리스트와 트럭 리스트를 오름차순 정렬 해준다.
2. 화물 리스트에서 pop하고 트럭 리스트에서 pop해서 둘을 비교해 트럭의 용량이 더 크면 그 화물은 운반 가능하기 때문에 ans에 화물의 무게를 더해준다.
3. 하지만 그렇지 않다면 그 화물은 운반할 수 없는 화물이 되기 때문에 pop으로 빼낸 트럭만 다시 트럭 리스트에 더해준다.
4. 그렇게 계속 비교하면서 트럭 리스트나 화물 리스트 둘 중 하나가 빈 리스트가 되면 while 문을 종료한다.
T = int(input())
for tc in range(1, T+1):
N, M = map(int, input().split())
goods = list(map(int, input().split()))
trucks = list(map(int, input().split()))
goods.sort()
trucks.sort()
ans = 0
while trucks and goods:
truck = trucks.pop()
a = goods.pop()
if truck >= a:
ans += a
else:
trucks.append(truck)
print('#{} {}'.format(tc, ans))
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 5205_병합 정렬 (0) | 2021.10.07 |
---|---|
5203_베이비진 게임 (2) | 2021.10.05 |
[SWEA] 5202_화물 도크 (0) | 2021.10.05 |
[SWEA] 5189_전자카트 (0) | 2021.10.05 |
[SWEA] 5188_최소합 (0) | 2021.10.05 |
Comments