πλ¬Έμ
https://school.programmers.co.kr/learn/courses/30/lessons/181187
β¨ν΅μ¬ λ΄μ©
λ μ μ¬μ΄μ x, y μ’ν λͺ¨λ μ μμΈ μ μ κ°μ λ°ννκΈ°
(κ° μμμ μ λ μΈμ΄μΌ νλ€)
π€ν΄κ²° μμ΄λμ΄
μ ν: μν
1. iλ₯Ό 1λΆν° r2κΉμ§ λ°λ³΅νλ©° ν΄λΉ x μ’νμμμ μ 1, μ 2μ y μ’νλ₯Ό ꡬνλ€
2. xκ° i μΌ λ λ μ μ¬μ΄ y κ°μ μ΅λ κ°μ math.sqrt(math.pow(r2, 2) - math.pow(i, 2))
3. xκ° i μΌ λ λ μ μ¬μ΄ y κ°μ μ΅μ κ°μ math.sqrt(math.pow(r1, 2) - math.pow(i, 2))
4. μ΅λ κ°κ³Ό μ΅μκ° μ¬μ΄μ μ μμ κ°μλ₯Ό μΈμ΄ λν΄μ£Όλ©΄ λλ€
π‘ μ£Όμ ν μ
1. 1μ¬λΆλ©΄μ κ°λ§ ꡬν λ€ *4 νκΈ°
2. μΆ μμ κ°μ΄ μ€λ³΅λμ§ μλλ‘ iμ λ²μλ 1λΆν° μμνκΈ°
3. a <= x <= bλ₯Ό λ§μ‘±νλ μ μ xμ κ°μ
μ) 1.2 <= x <= 5.4λ₯Ό λ§μ‘±νλ μ μ xμ κ°μλ
2 <= x <= 5 λ₯Ό λ§μ‘±νλ μ μ xμ κ°μμ λμΌνλ€
=> math.floor(a) - math.ceil(b) + 1
β μ λ΅ μ½λ (Python)
import math
def solution(r1, r2):
ans = 0
for i in range(1, r2 + 1):
# i λ³΄λ€ r1μ΄ μμ mnμ κ°μ΄ μμκ° λλ κ² λ°©μ§
if i <= r1:
mn = math.sqrt(math.pow(r1, 2) - math.pow(i, 2))
else:
mn = 0
mx = math.sqrt(math.pow(r2, 2) - math.pow(i, 2))
ans += (math.floor(mx) - math.ceil(mn) + 1)
ans *= 4
return ans
β μ λ΅ μ½λ (Java)
package programmers.lv2;
import java.util.*;
public class λ_μ_μ¬μ΄μ_μ μ_μ {
class Solution {
public long solution(int r1, int r2) {
long ans = 0;
// x: iμΌ λ r1μ λ΄λΆμ μ μμ κ°μ
// cnt = Math.floor((Math.sqrt(Math.pow(r1, 2) - Math.pow(i, 2))))
for (int i = 1; i <= r2; i++) {
double mn = Math.sqrt(Math.pow(r1, 2) - Math.pow(i, 2));
double mx = Math.sqrt(Math.pow(r2, 2) - Math.pow(i, 2));
ans += (long)Math.floor(mx) - (long)Math.ceil(mn) + 1;
}
ans *= 4;
return ans;
}
}
}
'algorithm > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] μ°μλ λΆλΆ μμ΄μ ν© (Python) (0) | 2024.07.16 |
---|---|
[Programmers] 리μ½μ³ λ‘λ΄ (Python) (0) | 2024.07.11 |
[Programmers] μ격 μμ€ν (Python, Java) (0) | 2024.07.03 |
[Programmers] λ±κ΅£κΈΈ (Python, Java) (0) | 2024.07.02 |
[programmers] μ μ μΌκ°ν - Python, Java (0) | 2024.07.01 |