개발 공부/알고리즘
[프로그래머스 알고리즘] "정수 제곱근 판별" JavaScript / Math.sqrt (), Math.pow()
U_D
2022. 3. 16. 12:24
1. 문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
2. 제한 조건
n은 1이상, 50000000000000 이하인 양의 정수입니다.
3. 예시
입력/출력
4. 풀이
[Math.sqrt / Math.pow 활용]
- 만약에 n의 제곱근을 1로 나눈 나머지가 0이라면 => 정수라면
- n의 제곱근에 1을 더한 값의 제곱값을 저장
- 그게 아니라면 -1을 저장
//Math에 두가지 메쏘드가 있는걸 알고있어서 검색해서 풀기!
function solution(n) {
var answer = 0;
if (Math.sqrt(n) % 1 === 0) {
answer = Math.pow((Math.sqrt(n) + 1),2)
} else {
answer = -1
}
return answer;
}
[while / if]
근본의 while만 쓴 사람의 풀이
function nextSqaure(n){
var result = 0;
var x = 0;
while (x*x < n){
x++;
}
if (x*x == n){
x++;
result = x*x;
}else{
result = 'no';
}
return result;
}