♥ 목차 ♥
728x90
728x90
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
입출력 예
n
|
result
|
144
|
1
|
976
|
2
|
입출력 예 설명
입출력 예 #1
- 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
- 976은 제곱수가 아닙니다. 따라서 2를 return합니다.
나의 풀이
function solution(n) {
let answer = 2;
for(let i=0;i<=1000;i++){
if(i*i === n){
answer = 1;
break;
}
}
return answer;
}
다른 사람의 풀이
1.
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}
2.
function solution(n) {
return Math.sqrt(n) % 1 === 0 ? 1 : 2;
}
새롭게 알게된 것
Number.isInteger() : 숫자가 정수인지 true/false로 판결해주는 메서드
Math.sqrt() : 함수 인자로 값을 넘겨주면 루트 값을 반환한다.
만약 매개변수가 음수이면 NaN을 반환한다.
Math.sqrt(4); //2
Math.sqrt(2); //1.414213562373095
Math.sqrt(-1); //NaN
Math.pow() : 함수 인자로 값을 넘겨주면 제곱값을 반환한다.
Math.pow(7,2) // 49
// fractional exponents
Math.pow(4,0.5) // 2 (square root of 4)
Math.pow(8,1/3) // 2 (cube root of 8) -> 2*2*2
// signed exponents
Math.pow(7, -2); // 0.02040816326530612 (1/49)
Math.pow(8, -1/3); // 0.5
// signed bases
Math.pow(-7, 2); // 49 (squares are positive)
Math.pow(-7, 3); // -343 (cubes can be negative)
Math.pow(-7, 1/3); // NaN
출처(감사합니다💜)
728x90
728x90