문제 : 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 라이브러리 정도는 기본으로 알고 있어야될듯
'📝 PS > 프로그래머스 (Python)' 카테고리의 다른 글
[프로그래머스] 연속된 부분 수열의 합 (파이썬, Python) (0) | 2023.04.28 |
---|---|
[프로그래머스] 요격 시스템 (파이썬, Python) (0) | 2023.04.15 |
[프로그래머스] 과제 진행하기 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 추억 점수 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 달리기 경주 (파이썬, Python) (0) | 2023.04.06 |
댓글