[프로그래머스] 정수 제곱근 판별 (Python)

Cha Hwa Young·2023년 2월 5일
0

PS

목록 보기
2/2
post-thumbnail

접근 방식

n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하는 문제

예제 2의 경우, 3의 제곱근은 1.7320508075688772와 같이 float type이다.
이를 int로 정수화하면 1이므로
정수화한 값과 제곱근의 값이 다르다.

내 풀이

forwardyoung풀이

그래서 if int(square_root) == square_root:와 같은 코드를 작성하여 n의 제곱근이 정수인지 판별하였다.

다른 사람의 풀이

  • math 모듈의 sqrt 함수를 사용
import math
def solution(n):
    sq = math.sqrt(n)
    if sq == int(sq):
        return (sq+1)**2 
    return -1
  • 제곱근을 1로 나눴을 때 나머지가 0이면 정수
    📍앞서 예제 2의 n=3의 제곱근은 1.7320508075688772였고, 이를 1로 나눴을 때 나머지는 0.7320508075688772이다.
def solution(n):
    sqrt = n ** (1/2)

    if sqrt % 1 == 0:
        return (sqrt + 1) ** 2
    return '-1'
profile
기회를 잡는 사람이 되도록!

0개의 댓글