Coding Test/Practice
[Softeer] 소프티어 - 금고 털이 JavaScript (Level 2)
yunicornlab
2024. 6. 29. 23:12
반응형
자바스크립트로 Softeer의 금고 털이 라는 문제 풀기!
https://softeer.ai/practice/6288
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
const fs = require('fs');
let [numbers, ...input] = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');
let [max_weight, n] = numbers.split(' ').map(Number);
let line = input.map(v => v.split(' ').map(Number)).sort((a, b) => b[1] - a[1])
let weight = 0;
let price = 0;
for (let metal of line) {
let assign = weight + metal[0] <= max_weight ? metal[0] : max_weight - weight;
weight += assign;
price += assign * metal[1]
if (weight === max_weight) break;
}
console.log(price)
가격을 위주로 2차원 배열을 정렬하고 더해가며 출력
let i = 0;
let price = 0;
while (max_weight >= 0 && i < line.length) {
let metal_weight = line[i][0];
let metal_price = line[i][1];
if (max_weight >= metal_weight) {
max_weight -= metal_weight;
price += metal_weight * metal_price
} else {
price += max_weight * metal_price;
max_weight = 0;
}
i++;
}
console.log(price)
이 방법도 통과는 했지만 실행 시간이 조금 더 걸린다.
반응형