▶ 문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 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()' 가 핵심임을 알 수 있다.
'Developer > Programmers' 카테고리의 다른 글
[Programmers] LV 0. 가위 바위 보 (Python/파이썬) (0) | 2023.03.02 |
---|---|
[Programmers] LV 0. 대문자와 소문자 (Python/파이썬) (0) | 2023.03.01 |
[Programmers] LV 0. 개미 군단 (Python/파이썬) (0) | 2023.02.27 |
[Programmers] LV 0. 문자열안에 문자열 (Python/파이썬) (0) | 2023.02.23 |
[Programmers] LV 0. 모음 제거 (Python/파이썬) (0) | 2023.02.23 |
댓글