728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 정수 제곱근 판별
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12934
나의 풀이(오답)
def solution(n):
answer = -1
for i in range(1,n//2 + 1):
if i*i == n:
answer = (i + 1) ** 2
return answer
다른 풀이
1. math 라이브러리 사용
import math
def solution(n):
x = math.sqrt(n)
return (x+1)*(x+1) if x == int(x) else -1
[출처] [프로그래머스] LV1. 정수 제곱근 판별(파이썬python)|작성자 iamjuu
math 모듈에는 제곱근을 반환해주는 sqrt 함수가 있다.
n이 어떤 양의 정수 x의 제곱수라면 x를 정수형으로 변환한 x와 int(x)가 일치해야한다.
다른풀이 2
def solution(n):
x = n**0.5
return (x+1)**2 if not x-int(x) else -1
다른 풀이 3
def solution(n):
sqrt = n**(1/2)
if sqrt%1 == 0: return (sqrt+1)**2
return -1
※ 알아야 할 것
-
-
-
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 없는 숫자 더하기 / Python (0) | 2022.04.01 |
---|---|
Programmers / 최대공약수와 최소공배수 찾기 / Python (0) | 2022.03.31 |
Programmers / 하샤드 수 / Python (0) | 2022.03.31 |
Programmers / 콜라츠 추측 / Python (0) | 2022.03.31 |
Programmers / 정수 내림차순으로 배치하기 / Python (0) | 2022.03.31 |