예제 4번
10 // N 크레인 개수
11 17 5 2 20 7 5 5 20 7 // 크레인이 들 수 있는 무게 배열
5 // 박스 개수
18 18 15 15 17 // 박스들의 무게
무게 제한이 있는 N 개의 크레인으로
M개의 박스를 몇분안에 옴길 수 있는가?
각 박스의 무게는 따로 주어진다.
크레인 N개의 배열을 오름차순으로 정렬하고
박스 M개 배열을 오름차순으로 정렬한다.
들 수 있는 무게가 제일 큰 크레인에게 가장 큰 무게를 가진 박스부터 옴기게 한다.
옴길 수 있으면 그 다음 큰 무게를 들 수 있는 크레인에게 다음으로 무거운 박스를 들게 한다.
그러다가 못들게 되면
예제 4처럼 다음 줄(분) 으로 넘기면 된다.
const fs = require("fs");
const stdin = (
process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `2
19 20
7
14 12 16 19 16 1 5`
).split("\n");
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
const N = +input();
const crain = input()
.trim()
.split(" ")
.map((v) => +v);
const M = +input();
const boxes = input()
.trim()
.split(" ")
.map((v) => +v);
crain.sort((a, b) => a - b);
boxes.sort((a, b) => a - b);
if (crain.slice(-1)[0] < boxes.slice(-1)[0]) {
console.log(-1);
return;
}
let answer = 0;
while (boxes.length > 0) {
for (let i = N - 1; i >= 0; i--) {
for (let j = boxes.length - 1; j >= 0; j--) {
if (crain[i] >= boxes[j]) {
boxes.splice(j, 1);
break;
}
}
}
answer++;
}
console.log(answer);
반응형
'Algorithm > 백준' 카테고리의 다른 글
백준 1162 도로포장 javascript (0) | 2022.09.09 |
---|---|
백준 구간 합 구하기 2042번 javascript (0) | 2022.08.15 |
백준 임계경로 1948번 javascript (0) | 2022.08.05 |
백준 후위 표기식 1918번 javascript (0) | 2022.07.19 |
백준 교환 1039 javascript (0) | 2022.07.14 |
댓글