[문제 사이트]
https://school.programmers.co.kr/learn/courses/30/lessons/120909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제]

[코드]
def solution(n):
a = n**(1/2)
b = float(int(n**(1/2)))
if (a - b == 0):
return 1
else:
return 2
[해석]
1. a와 b 변수로 나누는 이유는?
: 제곱 수인지 아닌 지 판별하기 위해서, 정수인 것과 소수인 것으로 구분.
2. a - b == 0이 조건인 이유는?
: 이렇게 구분하여 둘의 차를 구했을 때, 0인 경우면 제곱인 경우가 되고, 안 될 경우는 제곱이 아닌 경우로 판별이 됨.
따라서, 제곱인 경우, 1을 return 하라고 하였으니, 조건에 해당하면 return 1, 제곱 수가 아닌 경우면 return 2!
'Study > Programmers' 카테고리의 다른 글
| [0단계] 편지 (0) | 2023.01.08 |
|---|---|
| [0단계] 잘라서 배열로 저장하기 (0) | 2023.01.07 |
| [0단계] 세균 증식 (0) | 2022.12.29 |
| [0단계] 7의 개수 (2) | 2022.12.27 |
| [0단계] 다음에 올 숫자 (0) | 2022.12.27 |
