[JS] 프로그래머스 - 정수 제곱근 판별

나쿠크·2024년 10월 10일
0
post-thumbnail

🥇문제

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

접근방식

n의 제곱근을 구하고,
그 제곱근이 정수인지 아닌지 확인한 후,
정수이면 (제곱근 + 1)의 제곱을 반환,
정수가 아니면 -1을 반환합니다.

📇 출력

function solution(n) {
    const sqrt = Math.sqrt(n) 
    return Number.isInteger(sqrt) ? (sqrt+1) ** 2 :  -1  
}


🗝️필요한 사전 지식

Math.sqrt()
제곱근(square root)을 구하는 메서드. 주어진 숫자의 양의 제곱근을 반환하며, 이는 그 숫자를 두 번 곱한 값이 원래 숫자가 되는 수를 의미한다.

Math.sqrt(x)
  1. 문법
  • 매개변수: x는 제곱근을 구할 숫자
  • 반환 값: x의 양의 제곱근을 반환
    - 만약 x가 음수이면, NaN을 반환한다. (제곱근은 음수가 될 수 없기 때문입니다)
    - x가 0이나 양수라면, 그 제곱근을 반환한다.
  1. 동작 방식
  • 예를 들어, Math.sqrt(9)는 3을 반환한다. 이는 3을 두 번 곱하면 9가 되기 때문.
  • Math.sqrt(16)은 4를 반환합니다. 4를 두 번 곱한 값이 16이므로, 제곱근은 4이다.
  1. 예시
console.log(Math.sqrt(9));    // 3
console.log(Math.sqrt(16));   // 4
console.log(Math.sqrt(2));    // 약 1.4142135623730951
console.log(Math.sqrt(-1));   // NaN (음수는 제곱근을 가질 수 없음)



Number.isInteger()
주어진 값이 정수인지 판별하는 메서드. 이 메서드는 주어진 숫자가 정수이면 true를 반환하고, 그렇지 않으면 false를 반환한다.

  1. 문법
Number.isInteger(value)
  • 매개변수: value는 확인할 숫자.
  • 반환 값: value가 정수이면 true, 그렇지 않으면 false를 반환.
  1. 동작 방식
    Number.isInteger()는 주어진 값이 정수인지 확인하기 위해 두 가지 조건을 체크한다.
  • 자료형: 주어진 값이 숫자여야 합니다.
  • 정수 여부: 숫자 값이 소수점 아래에 숫자가 없어야 합니다.
  1. 예시
console.log(Number.isInteger(4));      // true
console.log(Number.isInteger(4.0));    // true (정수로 표현 가능)
console.log(Number.isInteger(4.5));    // false
console.log(Number.isInteger(-3));     // true
console.log(Number.isInteger("5"));    // false (문자열)
console.log(Number.isInteger(NaN));     // false (Not-a-Number)
console.log(Number.isInteger(undefined)); // false
console.log(Number.isInteger(null));    // false

링크

정수 제곱근 판별




까마득한 순위. 10000안에 들어가는 그날 까지 화이팅!


0개의 댓글