특정한 정수를 주었을때,
정수 i의 제곱근일 경우, i+1의 제곱을 반환하고, 아닐 경우 -1을 반환하기
121 = 11*11이므로 12의 제곱인 144를 반환
3은 정수제곱근으로 만들 수 없으므로 -1을 반환
function solution(n) {
var answer = 0;
for (let i = 1; i <= n; i++) {
if (n % i === 0) {
if(n / i === i){
answer = (i+1)*(i+1);
break;
}else{
answer = -1;
}
}
}
return answer;
}
n만큼 각 수를 곱해서 찾을까하다가 수가 너무 커질 것 같아서 n만큼의 정수들로 n을 나누기로 했다.
나누었을때 나머지가 0인 숫자들 중에서, 자기 자신으로 나눴을때 몫이 자기 자신이 나오는 숫자를 찾도록 짜보았다.
제곱근을 찾았을 경우 바로 반환해서 for반복문을 break로 끝냈고, 그렇지 않은 숫자들은 -1을 반환받게했다.
'실천하기 > 코딩테스트' 카테고리의 다른 글
level 1) 자연수 뒤집어 배열로 만들기 (0) | 2022.09.15 |
---|---|
level 1) 약수의 합 (0) | 2022.09.15 |
level 1) 각 자릿수 더하기 (0) | 2022.09.15 |
[220111] Lv.1 / 짝수와 홀수 (0) | 2022.01.11 |
[220110] Lv.1 / 최소공배수, 최대공약수 구하기 (0) | 2022.01.11 |
댓글