1.요구사항
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
121 | 144 |
3 | -1 |
입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
2. 문제 풀이
function solution(n) {
var answer;
var x;
x = Math.sqrt(n);
answer = Number.isInteger(x);
if(answer == false) {
return -1;
}
else {
x = x + 1;
answer = x * x;
return answer;
}
}
Math. sqrt(n)은 해당 숫자의 제곱근을 구하는 메서드이다.
값이 실수로 떨어지더라도 제곱근을 반환해주기 때문에 해당 값을 정수인지 실수인지 판별하도록
Number.isInteger로 boolean 값을 가져왔다.
해당 메서드를 활용하지 않아도 실수와 정수를 판별하는 조건문을 사용할 수 있다.
function isInteger(number) {
return number % 1 === 0;
}
'공부 > Java script' 카테고리의 다른 글
프론트엔드 개발자 면접 질문 정리 (0) | 2022.05.24 |
---|---|
[java script] 호이스팅 그리고 var,let,const의 차이점 (0) | 2022.04.22 |
[mongodb] bad auth : Authentication failed. 에러 (0) | 2022.03.03 |
[알고리즘] 배열에서 최소값 구하기 (0) | 2021.12.19 |
[JavaScript]배열에서 자주 쓰는 메서드들 (0) | 2021.12.12 |