출처 : 프로그래머스
문제
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