출처: https://school.programmers.co.kr/learn/courses/30/lessons/120909?language=python3
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ n ≤ 1,000,000
입출력 예
n result
144 1
976 2
입출력 예 설명
입출력 예 #1
144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
976은 제곱수가 아닙니다. 따라서 2를 return합니다.
내가 작성한 코드문
import math
def solution(n):
answer = 0
sqrt_number = math.sqrt(n)
if int(sqrt_number) == sqrt_number:
answer = 1
else :
answer = 2
return answer
n을 제곱근 한다음
제곱근 한결과가 정수인지 판별하는 조건문을 사용했다.
정수면 1 아니면 2반환
다른 사람의 풀이
def solution(n):
return 1 if (n ** 0.5).is_integer() else 2
0.5제곱승, 즉 루트 씌웠을때 정수냐 아니냐 판별
def solution(n):
for i in range(1,n):
if n == i * i:
return 1
return 2
반복문 돌면서 제곱 해서 n의 값이 되는게 있다면
반복문 다 돌았는데도 없으면 2 반환