본문 바로가기

2024 코딩테스트 스터디

[2주_4일차] 프로그래머스- 정수 제곱근 판별(Python)

<문제 설명>

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

 

 

<코드>

import math

def solution(n):
    answer=0
    sqrt_n = math.sqrt(n)
    if sqrt_n == int(sqrt_n):  
        x = int(sqrt_n)
        return (x+1)**2 
    else:
        return -1

 

 

<풀이과정>

-math모듈의 sqrt함수(제곱근 구하는 함수) 사용

-모듈 사용하지 않으면 이진탐색..인데 복잡

-sqrt()함수는 값이 float로 리턴되므로 정수형으로 바꿔서 동일한지 비교

*1로 나누었을 때 나머지가 0인지 확인해 정수인지 판별하는 방법도 있음