🔥 CodingTest/프로그래머스

[Lv.0] 제곱수 판별하기

김_수댕 2024. 3. 18. 16:01
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120909

✅ 문제

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

제한 사항

• 1 ≤ n ≤ 1,000,000

입출력 예

result
144 1
976 2

🔎 풀이 방법

제곱수 찾는 함수 있을 거 같은데 모르겠어서 mdn에서 Math 찾아봤다.

제곱수를 계산하는 함수를 사용해서 나온 값이 정수로 나와야 제곱수이므로 1로 나눴을 때 나머지가 0이 되는지 확인해줬다.

💻 코드

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

👀 추가 공부

숫자의 제곱근을 반환하는 함수: Math.sqrt()

 

Math.sqrt() - JavaScript | MDN

Math.sqrt() 함수는 숫자의 제곱근을 반환합니다.

developer.mozilla.org

숫자의 세제곱근을 반환 함수: Math.cbrt()

 

Math.cbrt() - JavaScript | MDN

Math.cbrt() 함수는 주어진 수의 세제곱근을 반환합니다. 즉,

developer.mozilla.org

// MDN 예제 코드
// Math.sqrt(n);
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095

Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN

// Math.cbrt(n);
Math.cbrt(NaN); // NaN
Math.cbrt(-1); // -1
Math.cbrt(-0); // -0
Math.cbrt(-Infinity); // -Infinity
Math.cbrt(0); // 0
Math.cbrt(1); // 1
Math.cbrt(Infinity); // Infinity
Math.cbrt(null); // 0
Math.cbrt(2); // 1.2599210498948734

 

Number.isInteger() 사용 => 주어진 값이 정수인지 판별하는 함수

// 프로그래머스 다른 사람 풀이
function solution(n) {
  return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger

 

Number.isInteger() - JavaScript | MDN

Number.isInteger() 메서드는 주어진 값이 정수인지 판별합니다.

developer.mozilla.org

 

 

반응형