[코테] 정수 제곱근 판별

HOU·2022년 6월 24일
0

코딩테스트

목록 보기
21/24
post-thumbnail

문제

정수 제곱근 판별

문제 설명

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

제한 사항

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

해결법

제곱근을 구하는 함수 Math모듈의 sqrt() 함수에 대해서는 알고 있었지만, float로 자료형을 리턴하기 때문에 제곱근이 있는지 없는지 여부를 판단하기 어려웠다. 소수점을 판단하기 위해서

풀이법

나의 풀이법

import math;

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

남의 풀이법

def nextSqure(n):
    sqrt = n ** (1/2)

    if sqrt % 1 == 0:
        return (sqrt + 1) ** 2
    return 'no'

소감

모듈을 사용하는 것도 좋지만 1/2를 제곱하면 제곱근이라는 사실! 중학교 때 이미 배운 사실을 잘 기억하자!

profile
하루 한 걸음 성장하는 개발자

0개의 댓글