일기 대신 코드 슬쩍

[프로그래머스]Lv1. 정수 제곱근 판별 본문

코딩테스트/프로그래머스(Python)

[프로그래머스]Lv1. 정수 제곱근 판별

코코자 2023. 1. 19. 00:57

Lv1. 정수 제곱근 판별

문제

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

풀이

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

어떻게 하면 제곱근을 보여줄 수 있을지 고민하다가, 제곱근을 가지는 정수라면 정수의 제곱근 또한 정수가 된다는 것을 이용하였습니다.

제곱근을 가지지 않는다면 무조건 정수가 아닌 소수 즉, 정수형으로 나올 수 없으므로 if 문을 사용하여 루트를 씌운 값과 루트를 씌운 값을 정수형으로 변환 값이 같다고 놓고 판별하였습니다.

 

이외에도 다른 풀이 방법으로 Math 모듈을 사용한다면 알고리즘이 조금 더 알아보기 쉬울 것 같네요. 🧐