[Py_Lv1] 정수 제곱근 판별

Sunghun📈·2021년 4월 14일
0

프로그래머스

목록 보기
34/93
post-thumbnail

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

제한 사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

입출력 예

접근법

제곱근을 구하는 과정에서 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
profile
데이터 분석과 AI 분야의 전문가를 꿈꾸는 청년

0개의 댓글