[오늘의 문제] 제곱수 판별하기

shlim55·2025년 10월 15일

코딩테스트

목록 보기
150/223

출처: 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 반환

profile
A Normal Programmer

0개의 댓글