본문 바로가기

코딩테스트/Python

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

내 코드

def solution(n):
    answer = 0
    
    
    for i in range(1,n+1):
        if i*i==n:
            return (i+1)**2
    return -1

 

숫자 범위만큼 i를 for문으로 돌리고 i*i가 n일 순간을 찾는다. 1을 예외처리 해주기 위해 n+1까지 범위로 잡았다.

 

 

다른사람 코드

문제가 바껴 다른 사람 코드는 좀 출력문이 다르다. 그래도 비슷하니까 코드를 보겠다!

def nextSqure(n):
    sqrt = n ** (1/2)

    if sqrt % 1 == 0:
        return (sqrt + 1) ** 2
    return 'no'

(1/2)를 제곱하면 제곱근이 된다는걸 까먹고있었다.. 이건 그걸 이용해서 푼 문제이다.

 

import math
def nextSqure(n):
    # 함수를 완성하세요
    return 'no' if not math.sqrt(n).is_integer() else (math.sqrt(n)+1)**2

math 라이브러리를 사용한다. from math import sqrt를 사용해도 된다.

is_integer()라는것이 있는지 처음 알았다!