프로그래머스 Lv.1 정수 제곱근 판별

서준·2023년 6월 14일
0

프로그래머스 Lv.1

목록 보기
4/35

1. 문제

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

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

2. 풀이

1차 시도(성공)

  • 일단 math함수로 시도해보자. 되려나..? 그렇게 쉬우려나?
import math

def solution(n):
    
    # 정수일 경우
    if (math.sqrt(n)%1 == 0):
        return (math.sqrt(n)+1)**2
    else:
        return -1
  • 그냥 되는 듯... 정수 판단하는 방법은 알고 가자

3. Lv.up

  1. 정수 판단 법
  • 1로 나눠서 나머지 0이면 정수

4. Ref.

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

    if sqrt % 1 == 0:
        return (sqrt + 1) ** 2
    return -1
  • 와.. 제곱근이 1/2승인걸 활용했네... 대박
profile
어린이입니다.

0개의 댓글