https://school.programmers.co.kr/learn/courses/30/lessons/181187
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2중 for문을 사용하면 시간초과를 출력한다.
x좌표 1부터 r2까지 바로바로 y좌표를 구해서 해당 범위에서 유요한 값을 더해준다.
import math
def solution(r1, r2):
answer = 0
for i in range(1, r2 + 1):
# 음수인 경우 제외
r1_y = math.ceil(math.sqrt(math.pow(r1, 2) - math.pow(i, 2))) if r1 > i else 0
r2_y = math.floor(math.sqrt(math.pow(r2, 2) - math.pow(i, 2)))
answer += r2_y - r1_y + 1
return answer * 4
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 3] / [Python] 네트워크 - DFS/BFS (0) | 2024.02.13 |
---|---|
[프로그래머스] / [Level 3] / [Python] 정수 삼각형 (0) | 2024.02.05 |
[프로그래머스] / [Level 2] / [Python] 우박수열 정적분 (0) | 2024.01.29 |
[프로그래머스] / [Level 1] / [Python] [PCCE 기출문제] 10번 / 데이터 분석 (0) | 2024.01.26 |
[프로그래머스] / [Level 1] / [Python] 성격 유형 검사하기 (0) | 2024.01.26 |