알고리즘 :: 가장 튼튼한 줄, 크레인

알고리즘 :: 가장 튼튼한 줄, 크레인

크레인

크레인에 달려 있는 줄을 이용해 무거운 물건을 들어올린다.

200kg까지 들어올릴 수 있는 줄을 3개 사용하면 600kg을 들 수 있다.

줄의 강도가 섞이면 약한 줄에 맞춰진다.

100kg 150kg 두 줄을 같이 쓰면 200kg까지 들 수 있다.

가지고 있는 줄이 올릴 수 있는 무게가 들어오면,

들어올릴 수 있는 가장 무거운 무게를 알아보자

들어오는 값

가지고 있는 줄이 올릴 수 있는 무게

예)

100 300 400

보여줄 값

주어진 줄로 올릴 수 있는 최대 무게

예)

600

핵심 포인트

1줄을 사용하면 가장 강도가 센 줄을 사용한다.

2줄을 사용하면 첫 번째로 강도가 센 줄과 두 번째로 센 줄을 사용한다, 무게는 두 번째 줄이 기준이 되겠고

i개를 사용하면 i 번째까지 줄을 사용하고, i 번째 줄이 기준

무거운 줄부터 정렬하고 해보면 되겠다.

코드

// VSCode에서 JavaScript 테스트 하기위한 코드 // 메모장에 테스트 케이스 넣고 crain.txt로 저장했다. let fs = require('fs') // 값을 가져올 때 아예 무거운 순서대로 정렬했다. let input = fs.readFileSync('crain.txt').toString().split(' ').sort((a, b) => b - a) function showWeight(kg) { let maxWeight = 0 let sum = 0 // i번째 줄이 기준으로 선택된 줄 수만큼 곱셈 for(let i = 0; i < kg.length; i++) { sum = kg[i] * (i + 1) // 무거운 줄 기억 maxWeight = Math.max(maxWeight, sum) } return maxWeight } console.log(showWeight(input))

from http://forgottenknowledge.tistory.com/129 by ccl(A) rewrite - 2021-09-24 22:27:14