20230326 정수 제곱근 판별

이셀·2023년 3월 26일
0

지금 0단계 3페이지 / 1단계 1페이지를 풀고 있는 중인데(스파르타 다니면서 꾸준히 했음!) 오...
일단 판별문제까진 괜찮은데 뭔가 숫자를 제대로 이해하지 못해서 쉬운 풀이방법과 어려운 풀이 방법을 같이 정리해두고자 한다.

쉬운 버전

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;

말그대로 제곱이 맞다면 제곱근을, 아니면 -1을 리턴해주는 방법이다.
사실 for문을 감쌀 생각을 하지 않았다보니 다음 방법으로 서치를 해서 풀었다...

어려운 버전

function solution(n) {
    if(Number.isInteger(Math.sqrt(n))){
        return Math.pow(Math.sqrt(n)+1, 2)
    }
    else {
        return -1
    }
}

math함수와 pow함수 그리고 sqrt함수의 존재를 알면 풀 수 있다.
math함수는 그렇다치는데 sqrt는 몰랐고...
다만 이 함수는 엑셀에서 사용하기 때문에 만약 엑셀을 잘 다룰줄 알았다면 나도 이 함수에 대한 존재를 알았을 것 같다.

음 하지만 이 pow와 sqrt 함수는 c언어에서 주로 쓰는 것같아 상당히 겁이 난다

pow함수는 기본이 되는 숫자의 n 제곱을 구하는 그러니까 ~의 ~승이 되는...! 것이다.

sqrt는 루트를 씌워서 계산된 값을 반환해주는 것이다
그러니까 sqrt=루트 였던 것이다...!!

우리가 잘 알고 있는 수식을 코드로써 풀이를 하면 pow와 sqrt함수가 되는건데 와...

진짜 진땀이 흐른다

아니 알겠는데

진짜?
진짜냐고

일단 정신이 혼미해져서 mdn 링크를 끌고 왔다

math.pow()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow

math.sqrt()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt

나... 힘낼께...!

profile
프론트엔드 개발자! 현재 SQL 뽀개는중;)

0개의 댓글