(프로그래머스) 181187. 두 원 사이의 정수 쌍
[unrated] 두 원 사이의 정수 쌍 - 181187
성능 요약
메모리: 10.2 MB, 시간: 928.27 ms
구분
코딩테스트 연습 > 연습문제
채점결과
Empty
문제 설명
x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1
, r2
가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.
※ 각 원 위의 점도 포함하여 셉니다.
제한 사항
- 1 ≤
r1
<r2
≤ 1,000,000
입출력 예
r1 | r2 | result |
---|---|---|
2 | 3 | 20 |
입출력 예 설명
그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
from math import floor, ceil, sqrt
def find_ys(x,r1,r2):
y_max = floor(sqrt(r2**2 - x**2))
if x > r1:
y_min = 0
else:
y_min = ceil(sqrt(r1**2 - x**2))
return y_max-y_min+1
def solution(r1, r2):
cnt = 0
for x in range(1, r2+1):
cnt += find_ys(x,r1,r2)
answer = 4 * cnt
return answer
Leave a comment