[프로그래머스 -181187] 두원 사이의 정수쌍

FeelingXD·2023년 7월 20일
0

문제풀이

목록 보기
14/34
post-thumbnail

❓ Problem

x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다.

🤔 How

점과 점사이의 거리 피타고라스 공식을 이용해 거리상의 좌표의 길이가 조건에 부합한것들만 갯수로 카운트하는것이 목표

사분면에서 특정사분면의 조건에 부합하는 갯수x4 를 해주면 최적의 해를 구할수있음
하지만 경계값에대해서 다른사분면에서 또한 같이 셈하는것이 있기에 잘 처리해주어야함

❗ Solve


from math import floor,ceil,sqrt
def solution(r1, r2):
    answer=0
    '''
    	사분면중 곂치는 경우는 (1사분면기준) x가 0이거나 최대값일경우 (r2)
        둘중 한경우를 제외하고 4배를 취해주면 4분면에서 조건이 일치하는 갯수를 구
        할수있음 이경우는 반복문 조건을 1부터 시작하면서 
        x가 0일때 의 케이스를 제외함
    '''
    for x in range(1,r2+1):
    
        max_y=floor(sqrt(r2**2-x**2))
        min_y=0 if x>=r1 else ceil(sqrt(r1**2-x**2))
        answer+=max_y-min_y+1
        
    return answer*4    
profile
tistory로 이사갑니다. :) https://feelingxd.tistory.com/

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기