분류: 구현
## 틀린 코드
import math
def solution(r1, r2):
answer = 0
answer += (r2-r1+1)*4
cnt = 0
for i in range(1, r2):
for j in range(math.ceil(math.sqrt(r1**(2) - i**(2))),int(math.sqrt((r2**(2) - i**(2))))+1):
if j == 0:
continue
cnt += 1
cnt *= 4
answer = answer + cnt
return answer
x,y축과 그 사이 점들을 따로 분리해서 구하려고 하였음
- x,y축에 있는 점 갯수
- 1~(r2-1)사이에 있는 점 갯수 x 4
이런식으로 로직을 짰는데 테스트코드에서는 맞았지만 제출 시 런타임 에러..
일단 이 식은 보류
import math
def solution(r1, r2):
answer = 0
for i in range(1, r2+1):
if i < r1:
s = math.ceil(math.sqrt(r1**(2) - i**(2)))
else:
s = 0
e = int(math.sqrt(r2**(2) - i**(2)))
answer += e - s + 1
answer *= 4
return answer
1사분면만 포함해서
e-s 로 갯수 구하는 방식
위의 내풀이는 일일이 검증해야 됐다면 e-s로 효율적으로 갯수 확인 가능
'알고리즘' 카테고리의 다른 글
[백준] 6588번 파이썬 python (3) | 2024.02.29 |
---|---|
[백준] 11726번 파이썬 python (1) | 2024.02.27 |
[프로그래머스] 요격 시스템 (파이썬 python) (0) | 2024.02.27 |
<백준> 19532번 파이썬 알고리즘 (0) | 2023.06.06 |
[프로그래머스] 폰켓몬 (java 자바) (0) | 2022.11.03 |