Algorithm : Programmers - 정수 제곱근 판별 ; 12934
👉 문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
🤔 생각해보기
- n 을 제곱근(루트)로 나눈다.
- n % x == 0 이면,
- x + 1 의 제곱
- 아니면 -1
👉 해결
모범답안
def solution(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1)** 2
return -1
기본적인 방법
파이썬에서 기본적으로 루트를 하는 방식은 당연하게도 제곱(**)을 이용한 방식이다.
# 2의 루트
print("2의 루트 : ", 2**(1/2))
2의 루트 : 1.4142135623730951
이와같이 제곱근을 연산하고 싶은 값을 입력하고** (제곱을 수행한 후) (1/2)의 값을 곱한다. 정석적인 제곱근을 구하는 방식이니 누구나 쉽게 이해를 할 것이다.
Math 라이브러리 방식
그리고 파이썬에서는 수학 라이브러리인 Math를 이용해서 제곱근을 구할 수도 있다.
import math
# Math 라이브러리를 이용한 루트 계산
print("2의 루트 : ", math.sqrt(2))
2의 루트 : 1.4142135623730951
일반적으로 파이썬 개발자들은 math 라이브러리를 다루는 것에 능숙하며, 유지보수성이나 가독성 측면에서 sqrt 함수를 사용하는 것이 기본적인 방법보다 유리하기에 아래의 방법을 더 많이 사용한다.
출처: https://needneo.tistory.com/77 [네오가 필요해]
제곱근을 구하기 위한 방법 중 n **(1/2) 을 이용하는 방법이 있다.
Author And Source
이 문제에 관하여(Algorithm : Programmers - 정수 제곱근 판별 ; 12934), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coil/Algorithm-Programmers-정수-제곱근-판별-12934저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)