
import math
def solution(n):
a = int(math.sqrt(n))
if a*a == n:
return (a+1)**2
else:
return -1
파이썬에서 sqrt(제곱근) 함수 구할때 import math 씀
sqrt 쓰면 정수가 아니라 실수(float)형을 반환하기 때문에 int형 꼭 써줘야함 !
math 함수 안쓰고 반복문으로 풀면
def solution(n):
i = 1
while i * i <= n:
if i * i == n:
return (i+1) ** 2
i+=1
return -1
1부터 차례대로 제곱하면서 n과 같은 값이 나오는지 확인
같으면 제곱수, 크면 멈춤
'코딩테스트 > Python' 카테고리의 다른 글
| [프로그래머스/Python] 음양 더하기 (0) | 2025.09.24 |
|---|---|
| [프로그래머스/Python] 하샤드 수 (0) | 2025.09.24 |
| [프로그래머스/Python] 문자열 내 p와 y의 개수 (0) | 2025.09.22 |
| [프로그래머스/Python] 두 정수 사이의 합 (0) | 2025.09.22 |
| [프로그래머스/Python] 정수 내림차순으로 배치하기 (0) | 2025.09.22 |