Developer/Programmers

[Programmers] LV 0. 제곱수 판별하기 (Python/파이썬)

moolife 2023. 2. 28.

▶ 문제 설명

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 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합니다.

▶ Code

def solution(n):
    answer = 0
    if (n ** 0.5) % 1 == 0:
        answer = 1
    else:
        answer = 2
    return answer

▶ Point

n에 0.5 제곱, 즉 제곱근을 1로 나눈 나머지가 0인 경우가 n이 제곱수라는 것과 동일하다는 표현이기 때문에 이를 if-else 조건문으로 활용한다.

 

다른 풀이

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

다음과 같이 간단하게 'return 1 if (n ** 0.5).is_integer() else 2' 한 문장으로 출력할 수 있다. 'is_integer()' 가 핵심임을 알 수 있다.

댓글