문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
입출력 예
접근법
제곱근을 구하는 과정에서 n^(1/2)값이 float 형태로 나와
이 값을 어떤 정수 x의 제곱근이 되는지 여부를 판단하는 기준을 생각하는데
시간을 많이 사용했다.
2,3,5....등의 소수는 제곱근이 소수점까지 포함된다는 결과로
방법을 찾을 수 있었다.
최종적으로 n^(1/2)값을 int형태로 변경 후 뺀 값이 0일 경우를 기준으로
문제를 해결하였다.😁
제곱근을 구하는 식이 지저분해 보일 수 있어
나중에는 math 라이브러리에 sqrt() 함수를 사용해 봐야겠다.
=============================================================
def solution(n):
if n**(1/2) - int(n**(1/2)) == 0:
answer = (n**(1/2)+1)**2
else:
answer = -1
return answer