https://programmers.co.kr/learn/courses/30/lessons/12934

 

코딩테스트 연습 - 정수 제곱근 판별

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

programmers.co.kr


풀이 과정

n을 입력받고 n이 x의 제곱수면 (x+1)^2, 아니면 -1을 리턴하는 문제이다.

 

n ** (1/2)로 x를 구하고 x가 양의 정수인지를 판단해주면 된다.

 

int(x) == x이면 양의 정수고 아니면 양의 정수가 아니라고 판단할 수 있다.

 

1로의 나머지 연산을 통해 x % 1 == 0이면 양의 정수, 아니면 양의 정수가 아니라고 판단할 수도 있다.

 


소스 코드

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

+ Recent posts