알고리즘

[Programmars] 정수 제곱근 판별 (JavaScript)

프린벼르 2022. 2. 4. 00:55

정수 제곱근 판별 문제

1. 나의 생각 흐름

제곱근 문제니까 Math.sqrt()를 사용해서 문제를 풀어나가야겠다고 생각했다. 그랬는데 제곱에 관한 부분도 풀어줘야해서 찾아보니 Math.pow()를 사용하면 좋겠다고 생각했다. 그래서 두 개념을 가지고 문제를 풀어나갔다.

2. 나의 코드 정리

function solution(n) {
    let answer = 0;
    let x = Math.floor(Math.sqrt(n));
    if(n === Math.pow(x,2)){answer = Math.pow(x+1,2);}
    else{answer = -1;}
    return answer;
}

처음에는 Math.floor를 써주지 않아서 에러가 계속 났었다. 왜그런지 몰라서 계속 찾아보다가 Math.floor를 써주니 한방에 해결되었다. 아마도 제곱근이다보니 정수가 아닌 소수점이 나와서 그런것 같다.

- 자바스크립트 pow / sqrt 란?
    pow특정숫자의 거듭제곱 값을 계산해주는 함수이며,   sqrt특정숫자의 제곱근 값을 계산해주는 함수

- pow 사용법
    Math.pow(대상 숫자, 거듭제곱 횟수);​
 
 - sqrt 사용법
    Math.sqrt(대상 숫자);

3. 다른 사람들의 코드

function nextSqaure(n){
  switch(n % Math.sqrt(n)){
    case 0:
      return Math.pow(Math.sqrt(n) + 1, 2);
    default:
      return -1;
  }
}

4. 결론

Math 함수에 관련한 메소드들이 다양한 것 같다. 이번 기회에 그걸 정리하는 시간을 가져야겠다.