임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,
n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
n | return |
---|---|
121 | 144 |
3 | -1 |
Math.sqrt(x)
Number.isInteger(num)
나머지 연산자(%) 사용
pow === a*a;
pow === a**;
pow === Math.pow(a,2);
// 풀이 1
function solution(n) {
let answer = Math.sqrt(n)
let result = 0;
// 반환한 제곱근이 정수인지 판별
if (Number.isInteger(answer) == true) {
// 정수일 경우 제곱근의 +1한 값의 제곱을 리턴
result = (answer+1)**2;
return result;
} else {
// 제곱근도 없고 정수도 아닐 경우 -1 리턴
return result = -1;
}
}
// 풀이 2 삼항 연산자와 Math.pow() 활용
function solution(n) {
let answer = Math.sqrt(n)
let result = 0;
// 반환한 제곱근이 정수인지 판별
Number.isInteger(answer) == true ? result = Math.pow((answer+1), 2) : result = -1;
return result;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12934