SMALL
[문제]
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,
n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
[답안]
import math
def solution(n):
if int(math.sqrt(n)) == math.sqrt(n):
return math.pow(math.sqrt(n) + 1, 2)
return -1
[풀이]
math 라이브러리를 사용하고, 제곱근을 구하는 sqrt 함수와 제곱을 구하는 pow 함수를 사용했다.
if int(math.sqrt(n)) == math.sqrt(n): => n의 제곱근 값이 정수 형태인지 확인을 위한 조건값
return math.pow(math.sqrt(n) + 1, 2) => 정수 형태라면 n의 제곱근 값 + 1을 하기 위하여 math.sqrt(n) + 1 을 사용하였고,
2 제곱을 구하기 위하여 math.pow(n, 2)를 사용
return -1 => 양의 정수 형태가 아닐 경우 -1을 리턴
[문제 풀어보기]
https://school.programmers.co.kr/learn/courses/30/lessons/12934
LIST
'develop > Python' 카테고리의 다른 글
[프로그래머스/파이썬] 콜라츠 추측 (0) | 2024.07.25 |
---|---|
[프로그래머스/파이썬] 서울에서 김서방 찾기 (0) | 2024.07.25 |
[프로그래머스/파이썬] 정수 내림차순으로 배치하기 (1) | 2024.07.22 |
[프로그래머스/파이썬] 자연수 뒤집어 배열로 만들기 (0) | 2024.07.22 |
[프로그래머스/파이썬] 자릿수 더하기 (1) | 2024.07.22 |