제곱수 판별하기

오찬주·2024년 2월 25일
0

JAVASCRIPT

목록 보기
3/8
post-thumbnail

프로그래머스 120909번

제곱수 판별하기 문제다.

처음에는
for문을 사용해 1000까지 다 반복해서 i의 제곱수이면 1을 return하고 아니라면 2를 return하게 할까? 고민했다. 하지만 메소드가 있을 것 같아 찾아보니 역시 있었다.

💡 Math.sqrt()

: 루트 값을 구하는 메소드다.

Math.sqrt(4) 
//2
Math.sqrt(3)
//NaN

인자에 n을 넣어서 만약 1로 나눈 후 나머지 값이 0이라면 제곱수인 것이다.(return 1)

그리하여 풀이는 다음과 같다.

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

💡 Number.isInteger

더 간단한 풀이 방식이 있다.
Number.isInteger() 메서드는 주어진 값이 정수인지 판별한다.

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

n의 루트값을 구한 후 그 값이 만약 정수라면 1을, 정수가 아니라면 2를 return한다.


번외) 제곱값 구하기

Math.pow(base, exponent)
base^exponent처럼 base 에 exponent를 제곱한 값을 반환

Math.pow(3,2) 
//9 (3^2)

Math.pow(2,4)
//16 (2^4)

Math.pow(-7,0.5)
//NaN
profile
프론트엔드 엔지니어를 희망합니다 :-)

0개의 댓글