https://school.programmers.co.kr/learn/courses/30/lessons/181187
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음에는 r2 바깥 점의 개수와 r1 안에 있는 점의 개수를 2중 for문으로 일일이 세서 계산.
근데 당연히 시간초과뜸 ㅎㅎ;;
그래서 다른분 풀이 봤는데 중첩반복문 안쓰고 수학적으로 풀 수 있다는 것을 알게됨
from math import sqrt, ceil, floor
def solution(r1, r2):
cnt = 0
for x in range(1, r2+1):
max_y = floor(sqrt(r2*r2 - x*x))
min_y = 0 if x >= r1 else ceil(sqrt(r1*r1 - x*x))
cnt += max_y - min_y + 1
return cnt*4
[프로그래머스] 172927. 광물 캐기| 그리디 | 파이썬, 소스코드, 정답 (1) | 2023.05.04 |
---|---|
[프로그래머스] 176962. 과제 진행하기 | 구현 | 파이썬, 소스코드, 정답 (0) | 2023.05.03 |
[프로그래머스] 178870. 연속된 부분 수열의 합 | 투포인터 | 파이썬, 소스코드, 정답 (0) | 2023.05.02 |
[프로그래머스] 181188. 요격시스템 | 정렬 | 파이썬, 소스코드, 정답 (1) | 2023.04.30 |
백준 1005 ACM Craft | 파이썬, DP (3) | 2022.02.11 |