x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.
※ 각 원 위의 점도 포함하여 셉니다.
r1 | r2 | result |
---|---|---|
2 | 3 | 20 |
import math
def solution(r1, r2):
answer = 0
# x가 1인 경우부터 개수 확인
for x in range(1, r2+1):
# 큰 원의 둘레 정수값 = y_max
y_max = math.floor(math.sqrt(r2 ** 2 - x ** 2))
# 작은 원의 둘레 정수값 = y_min
if x >= r1:
y_min = 0
else:
y_min = math.ceil(math.sqrt(r1 ** 2 - x ** 2))
answer += y_max - y_min + 1
return answer * 4