3일차 -> 정수 제곱근 판별(Math.sqrt(), Math.pow(), Number.isInteger())
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

3일차 -> 정수 제곱근 판별(Math.sqrt(), Math.pow(), Number.isInteger())

by 은돌1113 2021. 11. 10.

문제설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인 지 아닌 지 판별 하려고 합니다.

n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴한다.

 

제한사항

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

 

내가 푼 문제 풀이

function solution(n) {
    
    var answer = 0;

    let sqrt = Math.sqrt(n)
    // Math.sqrt() : 값의 제곱근을 구하는 함수

    if(Number.isInteger(sqrt)){
    // Number.isInteger() : 값이 정수인 지 실수인 지 체크하는 함수
      answer = Math.pow(sqrt+1, 2)
      // Math.pow(대상 숫자, 거듭 제곱 횟수)
      // 정수의 거듭제곱 값을 계산해주는 함수
    }else{
      answer = -1
    }

    return answer;
}
function solution(n) {
    
    let sqrt = Math.sqrt(n)

    return (Number.isInteger(sqrt)?Math.pow(sqrt+1,2):-1);
}

1) Math.sqrt(대상 숫자) : 값의 제곱근을 구하는 함수

2) Math.pow(대상 숫자, 거듭 제곱 횟수) : 정수의 거듭제곱 값을 계산 해주는 함수

3) Number.isInteger() : 값이 정수인 지 실수인 지 true, false로 반환하는 함수

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=diceworld&logNo=220198130087 

 

자바스크립트 거듭제곱 / 제곱근 (pow / sqrt)

- 자바스크립트 pow / sqrt 란? pow 는 특정숫자의 거듭제곱 값을 계산해주는 함수이며, sqrt 는 특정숫자...

blog.naver.com

 

다른 사람이 푼 문제 풀이

function solution(n) {
    let answer = 0;
    let ans = Math.sqrt(n);
    (ans%1 == 0) ? answer = Math.pow((ans+1), 2) : answer = -1;
    return answer;
}

-> ans%1==0 -> 정수인 지 판별 가능

 

https://bsscl.tistory.com/44

 

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

링크 https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의..

bsscl.tistory.com

 

https://programmers.co.kr/learn/courses/30/lessons/12934

 

코딩테스트 연습 - 정수 제곱근 판별

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

programmers.co.kr

 

댓글