[알고리즘] 정수 제곱근 판별

Cottonmycotton·2021년 10월 15일
0

Algorithm

목록 보기
29/44
post-custom-banner

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

제한 사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

입출력 예시

🖊 풀이

📌 Math.sqrt()

  • Math.sqrt 메서드는 인수로 전달된 숫자의 제곱근을 반환한다.

📌 지수 연산자

  • 지수 연산자는 좌항의 피연산자를, 우항의 피연산자로(지수) 거듭 제곱한 숫자 값을 반환한다.
    • n이 양의 정수 x의 제곱이라면 x + 1을 리턴해야 하므로 Math.sqrt, pareInt함수를 이용하여 ndl 양의 정수 x의 제곱근인지 판별한 다음, 참이면 x + 1를 제곱하여 반환한다.
    • 거짓이라면 -1을 반한한다.

💡 코드

function solution(n) {
  let answer;
  
  if (Math.sqrt(n) === parseInt(Math.sqrt(n))) {
    answer = (Math.sqrt(n) + 1) ** 2;
  } else {
    answer = -1;
  }
  
  return answer;
}

문제 출처: 프로그래머스

profile
투명인간
post-custom-banner

0개의 댓글