본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - 정수 제곱근 판별

by YWTechIT 2021. 4. 1.
728x90

📌 정수 제곱근 판별

n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하는 문제.


1️⃣ 파이썬(Python) 풀이

root를 선언해서 root * root의 값과 n이 같은지 아닌지를 판별하면 된다.
이때, 같다면 root+1값을 제곱해주고 아니면 -1을 반환하면 된다.

root를 선언하지 않고 return문에 풀어서 작성해도 되는데, 가독성을 위해 줄여봤다.

# 내 코드
def solution(n):
    root = int(n ** 0.5)
    return (root+1) * (root+1) if root * root == n else -1

# 내 코드를 줄여쓴 코드
def solution1(n):
    root = int(n ** 0.5)
    return (root+1) ** 2 if root ** 2 == n else -1

2️⃣ 자바스크립트(JS) 풀이

제곱근이 아니라면 sqrt함수를 사용했을 때 float이 나오고, 제곱근이라면 number형이 나올 것이다. 그래서 parseIntparseFloat 형 비교를 사용했다. 또는 isInteger 함수를 사용해서 제곱근이 정수인지 아닌지를 비교해도 된다. return문은 삼항연산자를 이용해서 작성했다.

function solution(n) {
    return ((parseInt(Math.sqrt(n)) === parseFloat(Math.sqrt(n))) ? Math.pow(Math.sqrt(n)+1, 2) : -1)
}
반응형

댓글