yunicornlab

[Softeer] 소프티어 - 금고 털이 JavaScript (Level 2) 본문

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)

 

이 방법도 통과는 했지만 실행 시간이 조금 더 걸린다.

반응형