nearestSquare.js (8kyu 92)

Codewars 알고리즘 풀이


Problem

  • Your task is to find the nearest square number, nearestSquare(n), of a positive integer n.
    • 양의 정수 n의 가장 가까운 제곱수를 찾는다.
    • 제곱수 (square number): 어떤 수를 제곱하여 얻은 수.


Solution 01

function nearestSquare(n) {
  let a = Math.round(Math.sqrt(n));
  return a * a;
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000

Math.round() 메소드

가장 가까운 정수로 반올림한다.

Math.sqrt() 메소드

숫자의 제곱근을 반환한다.


Solution 02

function nearestSquare(n) {
  return Math.pow(Math.round(Math.sqrt(n)), 2);
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000

Math.pow(x, y) 메소드

x의 값을 y의 거듭제곱(x^y)으로 반환한다.


Solution 03

function nearestSquare(n) {
  return Math.round(n ** 0.5) ** 2;
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000