[Algorithm/Java] SWEA 5201번 - 컨테이너 운반
🔍 문제 풀이
문제 도식화
투포인터를 사용하면 간단히 풀리는 문제이다.
💻 전체 코드
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test = Integer.parseInt(br.readLine());
for(int tc = 1; tc<= test; tc++) {
// 입력 및 초기화
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()); // 컨테이너 수
int m = Integer.parseInt(st.nextToken()); // 트럭 수
Integer[] w = new Integer[n];
Integer[] t = new Integer[m];
st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
w[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for(int i=0; i<m; i++){
t[i] = Integer.parseInt(st.nextToken());
}
// 정렬
Arrays.sort(w, Comparator.reverseOrder());
Arrays.sort(t, Comparator.reverseOrder());
// 컨테이너 운반
int sum = 0, ti = 0, wi = 0;
while(wi <n && ti <m){
if(t[ti] >= w[wi]){
sum += w[wi];
ti++; wi++;
} else{
wi++;
}
}
System.out.println("#" + tc + " " + sum);
}
}
}
댓글남기기