알고리즘/Python

[Python | 프로그래머스] 제곱수 판별하기

i'mMolly 2023. 4. 11. 02:59

https://school.programmers.co.kr/learn/courses/30/lessons/120909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

 

제출 답안

def solution(n):
    for i in range(1, 1001):
        if i*i==n:
            return 1
        elif i*i>n:
            return 2
    return 2

 

개선 답안1

루트 == 0.5의 제곱

def solution(n):
    return 1 if (n ** 0.5).is_integer() else 2

 

개선 답안2

: math.sqrt() 함수로 제곱근 씌웠다가 다시 제곱했을 시

import math

def solution(n):
    return 1 if int(math.sqrt(n)) ** 2 == n else 2

 

참고 자료

https://school.programmers.co.kr/learn/courses/30/lessons/120909/solution_groups?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr