출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

간단한 문제이지만, 처음에 생각했던 방식과는 조금 다르게 풀었다:

def solution(n):
    return (n**(1/2)+1)**2 if (int(n**(1/2)))**2 == n else -1

처음에 생각했던 방식은 이렇다 - 만약 제곱근이 정수이면, 제곱근에 +1 한 숫자를 다시 제곱으로 만들어주고, 제곱근이 정수가 아니라면 -1을 출력하는 것이다. 하지만 저 방식으로 제곱근을 구하게 되다면, 정수로 안나오고 무조건 소숫점 1의 자리의 숫자까지는 출력이 되기 때문에, 그 방식을 조정시키는 것 보다는, 아예 다른 방식을 사용하는 것이 낫다고 생각했다.

 

따라서 만약 제곱근을 int()로 둘러싼 후, 이것의 제곱이 원래의 숫자와 같다면, 제곱근이 정수라는 것을 알 수 있기 때문에, 이를 이요하여 if else 문을 쓰고 풀었다.