Computer Science/Algorithm :: 알고리즘
알고리즘 :: 가장 튼튼한 줄, 크레인
HJPlumtree
2021. 9. 24. 22:24
알고리즘 공부하며 배운내용
크레인
크레인에 달려 있는 줄을 이용해 무거운 물건을 들어올린다.
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))