■ 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 |