function solution(r1, r2) {
let result = 0;
for (let i = 1; i <= r2; ++i) {
let maxY = Math.floor(Math.sqrt(r2 ** 2 - i ** 2));
let minY = i >= r1 ? 0 : Math.ceil(Math.sqrt(r1 ** 2 - i ** 2));
result += maxY - minY + 1;
}
return result * 4;
}
1시간 넘게 고민했는데도 답이 안 나와서 다른 사람들의 풀이를 참고했다.
O(n^2)을 O(n)으로 줄이는 건 항상 어려운 것 같다.