본문 바로가기
Algorithm

[프로그래머스] 정수 제곱근 판별 - JavaScript 📝

by Baest 2021. 11. 11.

[링크]

https://programmers.co.kr/learn/courses/30/lessons/12934

 

코딩테스트 연습 - 정수 제곱근 판별

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함

programmers.co.kr

 

[문제설명 및 입출력 예]

 

[내가 제출한 코드 및 풀이]

💯 삼항연산자 사용한 코드

 

function solution(n) {
    let x = Math.sqrt(n)                        // n을 root로 처리 ex) root 121 = 11
    let mul = x+1                               // 양의 정수 x의 제곱일 경우 수행해야하는 식 변수로 만듬
    let answer = 0;                             // return할 값 
    n % x == 0 ? answer = mul*mul : answer = -1 // n을 x로 나눠 나누어 떨어질 경우 mul*mul 수행, 아니면 -1 return   
    return answer
}

 

 

 

[다른 사람의 코드]

💡 내가 작성한 코드랑 거의 비슷한데 더 짧아 보이는 코드

function solution(n) {
    let num = Math.sqrt(n);
    if(num % 1 === 0 ) return (num+1) * (num+1)
    else return -1
}

 

💡 Number.isInteger(sqrt)로 조건식 표현 후 Math.pow()로 sqrt+1을 제곱

function solution(n) {
    let sqrt = Math.sqrt(n);
    return Number.isInteger(sqrt) ? Math.pow(sqrt + 1, 2) : -1;
}