코딩테스트 문제 > 모든 문제 > 난이도 : 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 모듈에 있는 함수를 참고하시어 다른 문제에서도 적용하시면 좋을 것 같아요 😃
감사합니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Python3] 코딩테스트 Lv.1 - 최대공약수 최소공배수 (0) | 2023.11.10 |
---|---|
[Python3] 코딩테스트 Lv.1 - 문자열 다루기 기본 (0) | 2023.11.07 |
[Python3] 코딩테스트 Lv.1 - 순서쌍의 개수 (2) | 2023.10.30 |
[Python3] 코딩테스트 입문 - 자릿수 더하기 (0) | 2023.08.02 |
[Python3] 코딩테스트 입문 - 순서쌍의 개수 (0) | 2023.08.02 |