백준 - 로프(2217번)[JS]

nyun-nye·2025년 2월 17일

백준 스터디

목록 보기
12/15

백준 - 로프(2217번)

저번에 풀었던 백준- 온라인 판매(1246번)과 비슷한 유형의 문제이다.


코드 설계

문제 해결의 단계는 아래와 같다.

  1. N으로 로프의 갯수를 받고, rope 배열에 각 로프가 버틸 수 있는 최대 중량을 저장한다.
  2. 로프 배열을 오름차순으로 정렬한다.
  3. maxWeight 배열을 N번 반복하며 각 로프의 중량에 따른 물체의 최대 중량을 저장한다.
  4. 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));

💡한줄평

비슷한 유형의 문제를 한 번 풀고나니 이 문제를 푸는 것은 쉬웠다. 스터디에서 그 유형과 비슷한 문제인 것 같으니 비슷한 방식으로 풀어보는 것이 어떻냐는 의견을 참고했다. 나 혼자 풀었으면 조금 헤맸을지도..

profile
시야가 넓은 개발자가 되기를 희망합니다.

0개의 댓글