본문으로 바로가기

SW Expert 아카데미 5201. 컨테이너 운반

 문제에서는 A에서 B 도시로 N개의 트럭이 무게가 서로 다른 콘테이너를 운반하는데 최적의 방법을 찾아야 한다.

최적의 방법에 따라 옮겨진 화물의 전체 무게가 얼마인지 출력해보자.

문제 보러 가기

github에서 코드 보기


문제에서 제시한 조건

1. 컨테이너의 무게가 정해져 있고, 트럭마다 적재 가능한 용량이 주어진다.

2. A도시에서 B도시로 최대 M대의 트럭이 편도로 한번만 운행한다.

3. 화물을 싣지 못한 트럭이 있을 수도 있고, 남는 화물이 있을 수도 있다.

4. 트럭은 하나의 컨테이너만 실을 수 있다.


문제 풀기 전 결정 사항

이 문제는 그리디 알고리즘에 해당하는 문제이다.

많은 양을 적재할 수 있는 트럭이 가장 무거운 콘테이너를 들고 간다.


문제 풀이 방법



수도 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def greedy(container, truck):
    total_weight = 0
 
    for t in truck:
        for index, c in enumerate(container):
            if t >= c:
                total_weight += c
                container.pop(index)
                break
 
    return total_weight
 
 
def gens(t):
    for i in range(t):
        n , m = map(int, input().split(' ')) # container, truck
        container = list(map(int, input().strip().split()))
        container.sort(reverse=True)
        truck = list(map(int, input().strip().split()))
        truck.sort(reverse=True)
        yield container, truck
 
if __name__ == "__main__":
    num = 0
    t = int(input())
    for container, truck in gens(t):
        num += 1
        print('#{0} {1}'.format(num, greedy(container, truck)))
 
 
cs

#SW Expert #삼성 컨테이너 운반 #삼성 코딩테스트 #5201 컨테이너 운반 #5201 컨테이너 운반 python #5201. 컨테이너 운반 python #python 5201. 컨테이너 운반 #python 5201 #삼성 5201 정답 #5201 컨테이너 운반 파이썬 #파이썬 5201 컨테이너 운반 #5201 컨테이너 운반 풀이 #SW Expert 5201 컨테이너 운반  #SW Expert #SW Expert 5201