<문제 설명>
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
<코드>
import math
def solution(n):
answer=0
sqrt_n = math.sqrt(n)
if sqrt_n == int(sqrt_n):
x = int(sqrt_n)
return (x+1)**2
else:
return -1
<풀이과정>
-math모듈의 sqrt함수(제곱근 구하는 함수) 사용
-모듈 사용하지 않으면 이진탐색..인데 복잡
-sqrt()함수는 값이 float로 리턴되므로 정수형으로 바꿔서 동일한지 비교
*1로 나누었을 때 나머지가 0인지 확인해 정수인지 판별하는 방법도 있음
'2024 코딩테스트 스터디' 카테고리의 다른 글
[2주_6일차] 백준- 큐2(Python) (0) | 2024.05.30 |
---|---|
[2주_5일차] 백준- 도키도키 간식드리미(Python) (0) | 2024.05.29 |
[2주_3일차] 프로그래머스- 자릿수 더하기(Python) (0) | 2024.05.27 |
[2주_2일차] 프로그래머스- 자연수 뒤집어 배열로 만들기(Python) (0) | 2024.05.26 |
[2주_1일차] 프로그래머스- 자릿수 더하기(Python) (0) | 2024.05.25 |