Develop/백준 코딩테스트

백준 코딩테스트 2217 로프 자바스크립트 node.js

codeGray 2022. 7. 4. 16:50
반응형

 

정답

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');

const [count, ...arr] = input;
sol(Number(count), arr);

function sol(count, arr){
    let result = [];
    arr = arr.map(i => +i);
    arr.sort((a,b) => a-b);
    
    for(let i=0; i < arr.length; i++){
        result.push(arr[i] * count);
        count--;
    }
    result.sort((a,b) => b-a);
    console.log(result[0]);
}

 

풀이

문제를 잘 보면 모든 루프를 다 사용할 필요는 없다고 되어있다.

즉 입력이

3

10

20

30

이렇게 들어왔으면 

로프가 3개고 10kg 짜리는 최대 30까지 받을 수 있고

10kg 짜리 로프를 사용하지 않을 때에는 20kg 로 40kg까지 받을 수 있고

10kg 30kg 둘다 사용하지 않으면 30kg로 까지 받을 수 있다. 

 

즉 오름차순으로 정렬 해놓고 제일 작은 kg의 로프를 빼면서 카운트도 마이너스 하면서 곱해서

가장 큰 값을 구하면 된다.

반응형