문제
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(제곱근을 구할 수) : 제곱근 구하는 함수
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 프로그래머스 알고리즘: LV2/87946 - 피로도 (1) | 2024.11.22 |
---|---|
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.05.28 |
[프로그래머스] 더 맵게 (0) | 2021.05.04 |
[프로그래머스] 가장 큰 수 (0) | 2021.05.02 |
[프로그래머스] 폰켓몬 (0) | 2021.04.30 |
댓글