본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 정수 제곱근 구하기

by 며루치꽃 2021. 5. 28.

문제

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

내가 생각했던 풀이과정

 

1. 처음 생각한 것은 제곱근을 확인하기 위해 나눴을 때 정수형인지 판별하려 했으나 나눴을 때 실수형(float) 형태로 나오기 때문에 다른 방법을 생각했습니다.

 

두번째로 생각한 점은 제곱근을 했을 때 만약 정수가 나왔다면 int 형태로 바꾼 다음 다시 제곱을 하여도 n이랑 같아야 하기 때문에 그 방식을 사용하였습니다.

 

2. 만약 정수의 제곱이면 정수(제곱근)에 1을 더한 수를 제곱한수를 리턴 

3. 정수의 제곱이 아니면 -1 을 리턴 

 

 

나의 풀이

def solution(n):
    result = 0
    temp = n**(1/2)
    if int(temp)**2 == n:
        result = (temp + 1) ** 2
        return result
    else:
        return -1

다른 사람의 풀이

import math 

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

math를 사용하여 sqrt(제곱근을 구할 수)를 이용하면 편하게 제곱근을 구할 수 있습니다. 나머지 결과는 제 방식과 유사한 것 같습니다.

새로 알게된 점, 확인해야할 점

math.sqrt(제곱근을 구할 수) : 제곱근 구하는 함수

댓글