Data house
[Python] 제곱수 판별 - is_integer() 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
# 말 그대로 제곱수인지 판별해야함
나의 풀이
def solution(n):
return 1 if (n**(0.5)).is_integer() else 2
n**(0.5)는 루트 n 을 말하는데, 이게 만약 정수라면 제곱수라고 볼 수 있다. 즉 1을 반환.
제곱수는 루트를 해도 정수인데 만약 그게 아니라면 제곱수라고 볼 수 없다. 즉 2를 반환
인상적인 풀이
def solution(n):
if n**(0.5) - int(n**(0.5)) == 0:
return 1
else:
return 2
나의 풀이랑 맥락은 같은데,
n이 제곱수였다면 int(n**(0.5))에서 정수가 나와서 n**(0.5)랑 빼도 0이 될 것이다.
n이 제곱수가 아니라면 int(n**(0.5)에서 정수가 안나와서 n**(0.5)랑 빼도 0이 나오지 않을 것이다.
'Computer Knowledge > 코테 대비 오답노트' 카테고리의 다른 글
[python] 진료순서 정하기 (0) | 2023.05.26 |
---|---|
[python] 가까이있는 수 구하기 - sort, lambda (0) | 2023.05.25 |
[python] 최빈값 구하기 (0) | 2023.05.22 |
[python] 분수의 덧셈 - Fractions, math (0) | 2023.05.22 |
[python] - 그림 확대 (1) | 2023.05.20 |