알고리즘/프로그래머스
[프로그래머스] 정수 제곱근 구하기
며루치꽃
2021. 5. 28. 00:53
문제
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(제곱근을 구할 수) : 제곱근 구하는 함수