🗃️javascript/프로그래머스

제곱수 판별하기(Lv.0)[Math.sqrt()와 Number.isInteger(+ .isArray)]

하얀성 2022. 12. 29. 16:13
<문제 설명>

 

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ n ≤ 1,000,000

입출력 예nresult
144 1
976 2

입출력 예 설명

입출력 예 #1

  • 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.

입출력 예 #2

  • 976은 제곱수가 아닙니다. 따라서 2를 return합니다.

 


<제출 답안>

function solution(n) {
   let sqrt = Math.sqrt(n);
    return sqrt === parseInt(sqrt)? 1: 2
}

 

아래와 같이 그대로 집어넣을 수 있다.

 

function solution(n) {
    return Math.sqrt(n) === parseInt(Math.sqrt(n))? 1: 2
}

 

Math.sqrt()는 제곱근 씌우는 메서드인데 몰라서 검색해서 찾았다.

다른 사람 답을 보니.. isInteger을 썻다.

function solution(n) {
  return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}

 


<참조 내용>

0. Math.sqrt(Object) 반환 값

주어진 숫자에 루트( )를 씌웁니다. 만약 숫자가 음수이면 NaN를 반환합니다.

 

1. Number.isInteger() 함수

 

Number.inInteger() 함수는 파라미터로 입력받은 값이 정수인지 판단합니다.

가장 간단하게, 데이터가 정수인지 판단할 수 있는 방법입니다.

하지만, 이 함수는 인터넷 익스플로러에서는 동작하지 않습니다.

 

 

2. 나머지 연산자(%) 활용

function isInteger(number)  {
  return number % 1 === 0;
}

document.writeln(isInteger(10)); // true
document.writeln(isInteger(0)); // true
document.writeln(isInteger(-10)); // true
document.writeln(isInteger(123.1)); // false

Javascript에서 나머지 연산자(%)는 두 수를 나누었을 때 나머지 값을 구해줍니다.

정수는 1로 나누었을 경우 항상 나머지가 0이 되는 속성을 이용해서,

주어진 숫자가 정수인지 체크하는 방법입니다.

 


Array.isArray()

Array.isArray() 메서드는 인자 Array인지 판별합니다.

    Array.isArray([1, 2, 3]);  // true
    Array.isArray({foo: 123}); // false
    Array.isArray('foobar');   // false
    Array.isArray(undefined);  // false
Copy to Clipboard

구문

    Array.isArray(obj)
Copy to Clipboard

매개변수

obj

검사할 객체.