Given a non-negative integer c, decide whether there're two integers a and b such that a^2 + b^2 = c.
음의 값을 가지지 않는 정수 c가 주어질때 가 되는 음이아닌 정수 a와 b가 있는지 여부를 리턴하시오.
입력 : 5
출력 : True
이유 : 1 * 1 + 2 * 2 = 5 이다.
class Solution:
def judgeSquareSum(self, c: int) -> bool:
# 초기 포인터 두개
l, r = 0, int(c ** 0.5)
while l <= r:
# 계산 값
v = l * l + r * r
# 동일하면 있다.
if v == c:
return True
# 계산값이 너무 작으면 낮은 값을 끌어올린다.
elif v < c:
l += 1
# 계산값이 너무 크면 큰값을 끌어 내린다.
else:
r -= 1
return False