본문 바로가기
실천하기/코딩테스트

level 1) 정수 제곱근 판별

by 한코코 2022. 9. 15.

특정한 정수를 주었을때,

정수 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을 반환받게했다.

댓글