π λ¬Έμ
xμΆκ³Ό yμΆμΌλ‘ μ΄λ£¨μ΄μ§ 2μ°¨μ μ§κ΅ μ’νκ³μ μ€μ¬μ΄ μμ μΈ μλ‘ λ€λ₯Έ ν¬κΈ°μ μμ΄ λ κ° μ£Όμ΄μ§λλ€. λ°μ§λ¦μ λνλ΄λ λ μ μ r1, r2κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λ μ μ¬μ΄μ 곡κ°μ xμ’νμ yμ’νκ° λͺ¨λ μ μμΈ μ μ κ°μλ₯Ό returnνλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
β» κ° μ μμ μ λ ν¬ν¨νμ¬ μ
λλ€.
μ ν μ¬ν
1 ≤ r1 < r2 ≤ 1,000,000
μ μΆλ ₯ μ
2 | 3 | 20 |
βοΈ νμ΄
μ°μ λͺ¨λ κ²½μ°λ₯Ό νμνλ€λ©΄ λΉμ°ν μκ°μ΄κ³Όκ° λ κ²μ΄λΌκ³ μκ°νλ€. μ²μμλ μ μμ 무쑰건 μ¬κ°νμΌλ‘ μ μ΄ μ°ν κ²μ΄λΌκ³ μκ°ν΄μ μ§λ¦ - 2μ μ κ³±μ μκ°νλ€. νμ§λ§ μ΄μ©μΌμΈμ§ λͺ¨λ ν μ€νΈμΌμ΄μ€λ₯Ό ν΅κ³Όνμ§ λͺ»νλ€. μκ°ν΄λ³΄λ λ€μκ³Ό κ°μ κ²½μ°κ° μμκΈ° λλ¬Έμ΄λ€.
νλμ μμ κΈ°μ€μΌλ‘ λΉ¨κ° λ°μ€λλ‘ μ μ΄ μ°¨μμ κ²μ΄λΌκ³ μκ°νμλ€. νμ§λ§ λ°μ§λ¦μ λ°λΌ κ²½μ°λ₯Ό μκ°ν΄μ€μΌ νκΈ° λλ¬Έμ 볡μ‘ν΄ μ§ μ μμ΄ λ€λ₯Έ λ°©λ²μ μκ°νκ² λμκ³ μ¬λΆλ©΄ μ€μ ν λΆλΆλ§ κ³μ°ν΄μ 4λ₯Ό κ³±ν΄μ£Όλ λ°©λ²μ μκ°ν΄λ΄€λ€.
μ²μμλ μ΄μ€ forλ¬Έμ μ΄μ©ν΄μ λλ €λ³΄μμΌλ μκ°μ΄κ³Όκ° λ°μνλ€. λ€μ μλν λ°©λ²μ κ°λ₯ν μ μμμ μ΅μ, μ΅λλ₯Ό ꡬνλ λ°©λ²μ΄μλ€.
νΌνκ³ λΌμ€ μ μλ₯Ό μ΄μ©ν΄μ ꡬνλ λ°©λ²μ΄λ€. μμ μμλ yκ° 2μΌ λμ μμμ΄λ€. λ°κΉ₯μͺ½μ μμΉνλ μμ yκ° 2μΌλλ₯Ό ꡬνλ€λ©΄ (λ°μ§λ¦^2 - y^2)μ μ κ³±κ·Όμ ꡬν΄μ£Όλ©΄ λλ€. λ΄λΆ μλ λ§μ°¬κ°μ§λ‘ κ³μ°νκ³ μΈλΆ μμ λ΄λ¦Ό, λ΄λΆ μμ μ¬λ¦Όνμ¬ μ¬μ΄μ μμΉν μ μλ μ μμμ μλ₯Ό ꡬνκ³ answerμ λν΄μ€λ€. μ΄λ κ² λλ©΄ μ¬λΆλ©΄ μ€ ν λΆλΆμμ νμͺ½ μΆμ μ μΈν λΆλΆμ κ°λ₯ν μ μμμ ꡬν μ μλ€. λ°λΌμ λ§μ§λ§μ 4λ°°λ₯Ό ν΄μ£Όκ³ λ°ννλ©΄μ λ¬Έμ λ₯Ό ν΄κ²°νλ€.
β¨οΈ μ½λ
function solution(r1, r2) {
var answer = 0;
for (let i = 1; i <= r2; i++) {
const min = Math.ceil(Math.sqrt(r1 ** 2 - i ** 2)) || 0;
const max = Math.floor(Math.sqrt(r2 ** 2 - i ** 2));
answer += max - min + 1;
}
return answer * 4;
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Algorithm] λ¬λ¦¬κΈ° κ²½μ£Ό (0) | 2023.04.17 |
---|---|
[Algorithm] νλ²κ±° λ§λ€κΈ° (0) | 2023.04.16 |
[Algorithm] μ격 μμ€ν (1) | 2023.04.13 |
[Algorithm] μμ΄ν μ€κΈ° (1) | 2023.04.12 |
[Algorithm] 곡μ μ°μ± (0) | 2023.04.11 |