본문 바로가기

TIL

Math.pow(), Math.sqrt()

■  Math.pow() - 제곱값 구하기

Math.pow(base, exponent)

Math.pow(2, 3); // 8

 

base^exponent처럼 base exponent 제곱한 값을 반환

base값이 음수이고 지수(exponent)값이 정수가 아닌 경우 NaN 반환

 

 

■  Math.sqrt() - 루트값 구하기

Math.sqrt(x)

Math.sqrt(4);		// 2

 

주어진 숫자의 제곱근을 반환

매개변수가 음수라면  NaN 반환(제곱근은 음수가 나올 수 없으므로!)

 


 

[정수 제곱근 판별하기]

문제 설명

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

 

제한 사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

입출력 예

n return
121 144
3 -1

 

입출력 예 설명

▶ 입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.

 입출력 #2
3
양의 정수의 제곱이 아니므로, -1 리턴합니다.

 

 

[작성한 코드]

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

 

 

[삼항연산자 적용 코드]

function solution(n) {
    return Math.sqrt(n)%1 !== 0? -1: Math.pow(Math.sqrt(n)+1,2);
}

 

 

🙂 느낀점

프로그래머스 정수 제곱근 판별 문제를 풀다가 관련 메서드가 있을 것 같은데.. 생각이 들었다. 그래서 MDN에 들어가서 Math를 쳤고 Math 관련 메서드를 하나하나 눌러보다가 이거 써보면 될 것 같은데? 생각이 들어서 처음 써보게 되었고 사용했던 함수를 정리해보았다.

문제를 어떻게 접근해야할지 모르겠을 때나 헷갈리는 부분이 있을때 등 MDN 은 언제나..유용하다..

 

 

 

참고

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

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

'TIL' 카테고리의 다른 글

React github page 배포 오류 해결  (0) 2024.08.14
두 정수 사이의 합  (0) 2024.08.13
querySelectorAll  (0) 2024.08.09
Template Literals, Destructuring, Seperate Operator  (0) 2024.08.08
localStorage  (0) 2024.08.07