

저번에 풀었던 백준- 온라인 판매(1246번)과 비슷한 유형의 문제이다.
문제 해결의 단계는 아래와 같다.
N으로 로프의 갯수를 받고, rope 배열에 각 로프가 버틸 수 있는 최대 중량을 저장한다.maxWeight 배열을 N번 반복하며 각 로프의 중량에 따른 물체의 최대 중량을 저장한다.maxWeight 배열의 최댓값을 출력한다.const input = require("fs")
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt")
.toString()
.trim()
.split(/\s+/) // \s: 공백 문자, + : 하나 이상 연속 된 경우
.map(Number);
const N = input[0];
let rope = input.slice(1, N+1)
rope = rope.sort((a,b)=>b-a); // 오름차순
// console.log(rope);
let maxWeight = [];
for(let i=0; i<N; i++){
// maxWeight[i] = rope[i] * (rope.filter(arg => arg <= rope[i]).length);
maxWeight[i] = rope[i] * (i+1);
}
// console.log(maxWeight);
console.log(Math.max(...maxWeight));
💡한줄평
비슷한 유형의 문제를 한 번 풀고나니 이 문제를 푸는 것은 쉬웠다. 스터디에서 그 유형과 비슷한 문제인 것 같으니 비슷한 방식으로 풀어보는 것이 어떻냐는 의견을 참고했다. 나 혼자 풀었으면 조금 헤맸을지도..