jyamethyst21 님의 블로그

프로그래머스 - '제곱수 판별하기' (PYTHON 풀이) 본문

CODING 💻

프로그래머스 - '제곱수 판별하기' (PYTHON 풀이)

jyamethyst21 2026. 5. 31. 00:04

문제:

 

n을 입력받았을 때, n이 제곱수라면 1, 아니라면 2를 출력하는 문제이다.

제곱수란 '2*2=4'와 같이 같은 수를 곱한 수를 의미한다.

 

풀이:

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

문제 자체에 1,000,000까지 제한이 있기 때문에 반복문을 활용하여서 1부터 1000까지만 반복문을 돌도록 하였다.

i를 제곱했을 때 n이라면 1을 리턴하고(제곱수이므로), 그렇지 않으면 2를 리턴하는 로직으로 코드를 작성하였다.

 

n보다 i*i가 큰 경우여야 하는 이유는 작은 경우로 작성 시 문제가 발생하기 때문이다.

예를 들어, 부등호가 '<'이고  n이 9, i가 1인 경우 3이 제곱수이지만 '1<9'의 조건이 되어 2가 리턴된다.

원하지 않은 값이 리턴되므로 상기와 같이 '>'로 작성을 하여야 한다.