Algorithm : Programmers - 정수 제곱근 판별 ; 12934

코일·2021년 12월 21일
0

algorithm

목록 보기
6/37

링크텍스트

👉 문제

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

🤔 생각해보기

  1. n 을 제곱근(루트)로 나눈다.
  2. n % x == 0 이면,
  3. x + 1 의 제곱
  4. 아니면 -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) 을 이용하는 방법이 있다.

profile
How do you get what you want?🤔🤔

0개의 댓글