여름의 서재

[SWEA] 5201_컨테이너 운반 본문

알고리즘/SWEA

[SWEA] 5201_컨테이너 운반

엉아_ 2021. 10. 5. 20:47
728x90

📕 문제

https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

💡 풀이법

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