Lv.1 정수 제곱근 판별 하기

출처 : 프로그래머스

문제

nextSqaure함수는 정수 n을 매개변수로 입력받습니다. n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 ‘no’을 리턴하는 함수를 완성하세요. 예를들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 ‘no’을 리턴하면 됩니다

내 풀이

def nextSqure(n):
    # 함수를 완성하세요
    import math
    floatSqure = math.sqrt(n)
    intSqure=int(math.sqrt(n))
    return 'no' if floatSqure-intSqure > 0 else pow(intSqure+1, 2)

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(nextSqure(121)));

다른사람의 풀이

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(nextSqure(121)));

def nextSqure(n):
    from math import sqrt
    return "no" if sqrt(n) % 1 else (sqrt(n)+1)**2

배운점

  • math.sqrt()는 제곱근을 구해 준다.
  • math.is_integer()라는 함수가 있다. int형인지 판별해 준다.
  • % 1 했을 경우 나머지가 있으면 0보다 큰 값. 연산자를 사용하는 방법을 또 하나 배웠다.
  • pow는 두번 째 인자 만큼 제곱을 해준다.

Comments