[lv1] 정수 제곱근 판별

걸음걸음·2023년 3월 4일
0

Test

목록 보기
16/29

문제 링크

  • 임이의 양의 정수 n
  • n이 어떤 양의 정수 x의 제곱인지 아닌지 판단
  • 어떤 양의 정수 x의 제곱이면 x+1의 제곱 return
  • 어떤 양의 정수 x의 제곱이 아니면 -1 return
function solution(n) {
    const num = Math.sqrt(n) // n의 제곱근 구하기
    if(Number.isInteger(num)){ // 정수인지 아닌지 판단
        return (num+1) ** 2
    } else {
        return -1
    }
}

Math.sqrt를 사용해도 되는 문제인지 아닌지 고민했지만 사용하지 말란 언급이 없고 사용할 수 있는 메서드를 잘 파악해두는 것도 중요하다는 생각으로 사용

  • Math.pow(n) : n의 제곱을 구하는 메서드

다른 사람의 풀이

function solution(n) {
    let 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;
}

Math.sqrt 메서드를 사용하지 않고 푼 방식

profile
꾸준히 나아가는 개발자입니다.

0개의 댓글