Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

프로그래머스 Lv.1 "정수 제곱근 판별"

by 별의 코비 2022. 11. 7.
728x90

🔥 Programmers Lv.1 : 정수 제곱근 판별


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

📎 조건 :
∙ n은 1이상, 50000000000000 이하인 양의 정수입니다.


👉🏻 My answer

function solution(n) {
    if(Math.sqrt(n) % 1 !== 0){
        return -1;
    } else {
        return(Math.sqrt(n) + 1)*(Math.sqrt(n) + 1)
    }
}
: 제곱근의 값이 1로 나누었을 때 나머지가 있으면 양의 정수 x의 제곱이 아니기 때문에 -1을 리턴하고 그 외에는 x+1을 제곱한다.


👉🏻 Another ways

function solution(n) {
    var answer = 0;
 
    for(let i=0, a=0; i<=n; i++){
      if(n/i===i){
        a = i + 1
        return a*a
      } else {
        answer = -1
      }
    }
 
    return answer;
}
저의 방법과 비슷하지만 좀 더 이해하기 쉬운 방법일 것 같습니다.

댓글