코딩테스트/PYTHON

[프로그래머스][PYTHON] Lv. 1 정수 제곱근 판별

_알파카 2024. 8. 5. 16:25
728x90

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/12934

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제에서 주어진대로 구현하면 되는 문제이다. 

 

내 풀이

import math
def solution(n):
    answer = 0
    if math.sqrt(n) == int(math.sqrt(n)):
        answer = (math.sqrt(n) + 1) ** 2
    else:
        answer = -1
    return answer

 

math 라이브러리를 임포트하여, sqrt 함수를 활용해 풀어보았다. 

sqrt 함수는 제곱근을 구할 수 이는 함수이다. 

 

다른 사람 풀이

def solution(n):
    if int(n**0.5) == n**0.5: #제곱수 판별
        return ((n**0.5)+1)**2 # 제곱근+1의 제곱수 반환
    else : 
        return -1 #제곱수 아니면 -1반환

 

math 라이브러리를 이용하지 않고도 풀 수 있다. 

** 연산자는 거듭제곱을 구하는 연산자인데, 

n**0.5를 하면, 제곱근을 구하는 것과 동일한 효과가 발생한다. 

(2**2 = 4 , 4**0.5 = 2)

 

728x90