-
[프로그래머스 Python] 정수 제곱근 판별Algorithm/1일 1코테 2020. 9. 23. 14:07반응형
문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
입출력 예시
알고리즘
1. n의 제곱근을 구한다
2. n의 제곱근이 정수면 return값으로 n의 제곱근 +1의 제곱을 구한다.
3. 정수가 아니면 -1 출력
처음엔 제곱근을 구하는 함수를 사용했을 때 정수가 아니면 error가 나는 줄 알고
try~except문을 사용했는데 그게 아님을 발견!
그러면 정수인지 아닌지 판별을 어떻게 해야할 지 고민하다가
제곱근 값이 int(제곱근)이랑 같으면 정수!
내 답
import math def solution(n): if math.sqrt(n) == int(math.sqrt(n)): return (math.sqrt(n)+1)**2 else: return -1
다른사람 풀이
def nextSqure(n): sqrt = n ** (1/2) if sqrt % 1 == 0: return (sqrt + 1) ** 2 return 'no'
**(1/2) === 제곱근!! 이라는 걸 전혀 생각 못함..
그리고 %1==0이면 그게 정수라는 뜻이구나..^^^^ 이제 알았다
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[프로그래머스 Python] 하샤드 수 (0) 2020.09.23 [프로그래머스 Python] 콜라츠 추측 (0) 2020.09.23 [프로그래머스 Python] 정수 내림차순으로 배치하기 (0) 2020.09.23 [프로그래머스 Python] 자연수 뒤집어 배열로 만들기 (0) 2020.09.23 [프로그래머스 Python] 자릿수 더하기 (0) 2020.09.23