본문 바로가기
코딩테스트/프로그래머스

[Python3] 코딩테스트 Lv.1 - 정수 제곱근 판별

by tout l'été 2023. 11. 2.

코딩테스트 문제 > 모든 문제 > 난이도 : Lv.1

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

 


 문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.

n이 양의 정수 x의 제곱이라면  x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요 

 

입출력 예

n return
121 144
3 -1

 

 

 


내가 쓴 코드

import math

def solution(n):
    answer = 0
    if math.sqrt(n)  == int(n**0.5) : # n의 제곱근이 n에 루트 씌운 것과 같다면
        return math.pow((math.sqrt(n) + 1), 2) # n의 제곱근 + 1을 제곱하고
    else : # 제곱근이 존재하지 않는다면
        return -1 # -1을 반환

 


Python math 모듈에서 제공하는 함수 

     중에서 제가 자주 사용하는 함수를 정리했습니다. 

import math

 

① math.pow(x, y)

    : 'x'를 'y' 제곱한 값 float 형으로 반환

# math.pow(x, y) : 'x'를 'y' 제곱한 값 float 형으로 반환

math.pow(3, 3)

 

 

② math.sqrt(x)

    : 실수형으로 제곱근 반환

# 실수형으로 제곱근 반환
x = 144

math.sqrt(x)

 

 

③ math.isqrt(x)

    : 음이 아닌 정수 n의 정수 제곱근 반환 

# 음이 아닌 정수 n의 정수 제곱근 반환 
x = 144

math.isqrt(x)

 

 

④ math.ceil(x)

   : 올림 반환

# 올림 반환
x = 5.2345

math.ceil(x)

 

 

⑤ math.floor(x)

   : x보다 작거나 같은 가장 큰 정수를 반환

#  x보다 작거나 같은 가장 큰 정수를 반환
x = -4.345

math.floor(x)

 

 

⑥ math.trunc(x)

   : x를 제로(0) 방향으로 가장 가까운 정수로 버림

# x를 제로(0) 방향으로 가장 가까운 정수로 버림
x = -4.345

math.trunc(x)

 

 

⑦ math.fabs(x)

   : 절대값 반환

# 절대값 반환 
x = -4.534

math.fabs(x)

 

 

⑧ math.gcd(x, y)

   :  최대 공약수 반환

# 최대 공약수 반환
x = 121
y = 99

math.gcd(x, y)

 

 

⑨ math.lcm(x, y)

   : 최소 공배수 반환 

# 최소 공배수 반환 
x = 15
y = 24

math.lcm(x, y)

 

 

 

math 모듈에 있는 함수를 참고하시어 다른 문제에서도 적용하시면 좋을 것 같아요 😃

감사합니다.