본문 바로가기
📝 PS/프로그래머스 (Python)

[프로그래머스] 두 원 사이의 정수 쌍 (파이썬, Python)

by Safetymo 2023. 4. 18.

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181187

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

첫번째 풀이 (통과)
import math

def solution(r1, r2):
    answer = 0  
    
    for i in range(1, r2+1):
        high_r1 = math.sqrt(r2**2 - i**2)
        high_r2 = 0 if i>r1 else math.sqrt(r1**2 - i**2)
        
        answer += math.floor(high_r1) - math.ceil(high_r2) + 1
          
    return answer*4

 

1. 우선 1사분면만 값을 구하면 4배를 해주면 된다고 생각한 뒤 접근함

2. 원의 반지름을 토대로 거리를 바탕으로 높이를 계산함

3. 작은원의 높이가 0인 경우 +1을 해주기 위해 반올림 후 + 1 하는 방식을 사용

 

math 라이브러리 정도는 기본으로 알고 있어야될듯

 

댓글