본문 바로가기
Coding Test/JavaScript

[Javascript] (백준 2217) 로프

by Chaedie 2022. 6. 26.
728x90

[Javascript] (백준 2217) 로프

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().split('\n');

//* 인풋 (커스텀)
const [n, ...nums] = input.map((num) => +num);

//* 함수 콜 (고정)
let answer = solution(n, nums);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution(n, nums) {
  nums.sort((a, b) => b - a);
  let max = nums[nums.length - 1] * nums.length;

  for (let i = 0; i < n; i++) {
    nums.pop();
    if (nums[nums.length - 1] * nums.length > max) {
      max = nums[nums.length - 1] * nums.length;
    }
  }

  return max;
}

다른 사람 풀이

//* 로직함수
function solution(n, nums) {
  nums.sort((a, b) => b - a);
  let max = 0;

  for (let i = 0; i < n; i++) {
    nums.pop();
    max = Math.max(max, nums[nums.length - 1] * nums.length);
  }

  return max;
}

다른 사람 풀이 중 if문 대신 max = Math.max() 한줄로 최댓값을 거르는 부분이 있는걸 확인했습니다.

 max = Math.max(max, nums[nums.length - 1] * nums.length);

if문으로 확인하는것보다 이 방식이 가독성도 좋고 라인도 짧아 훨씬 좋다고 생각합니다.

댓글