# ๋ ์ ์ฌ์ด์ ์ ์ ์ # 181187 # lv2 # Python
# ๋ฌธ์
x์ถ๊ณผ y์ถ์ผ๋ก ์ด๋ฃจ์ด์ง 2์ฐจ์ ์ง๊ต ์ขํ๊ณ์ ์ค์ฌ์ด ์์ ์ธ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ์์ด ๋ ๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ฐ์ง๋ฆ์ ๋ํ๋ด๋ ๋ ์ ์ r1, r2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ ์ ์ฌ์ด์ ๊ณต๊ฐ์ x์ขํ์ y์ขํ๊ฐ ๋ชจ๋ ์ ์์ธ ์ ์ ๊ฐ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
โป ๊ฐ ์ ์์ ์ ๋ ํฌํจํ์ฌ ์
๋๋ค.
# ์ ํ์ฌํญ
- 1 ≤ r1 < r2 ≤ 1,000,000
# ํ์ด
์ฒซ ๋ฒ์งธ ํ์ด
""" ๋ ํ์ด ๋ชจ๋ ์๊ฐ์ด๊ณผ ๋ฐ์. """
import math
def solution(r1, r2):
# ์ฒซ ๋ฒ์งธ ํ์ด
count = 0
xy_list = [[i, j] for i in range(-r2, r2+1) for j in range(-r2, r2+1)]
# r2 ๊ธธ์ด์ ๋ฐ์ง๋ฆ์ ๊ฐ์ง ์ ๋ด๋ถ์ ์๋ ๋ชจ๋ ์ ์ xy_list ์ ๊ฐ์ ธ์ด. -> ์ขํ๊ฐ ๋ฆฌ์คํธ๋ ๋ถํ์ํจ!!
for i in xy_list:
x, y = i
length = math.sqrt(x ** 2 + y ** 2)
# (x, y) ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ(length = sqrt(x^2 + y^2)๋ก ๊ตฌํจ.
if length >= r1 and length <= r2:
# ๋ง์ฝ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๊ฐ r1๊ณผ r2 ์ฌ์ด๋ฉด,
count +=1
# count
else:
pass
return count
def solution(r1, r2):
# ๋ ๋ฒ์งธ ํ์ด
count = 0
# ์ขํ ๋ฆฌ์คํธ๋ฅผ ์์ ๊ณ ๋ค์ ์์ฑํ ํ์ด.
for x in range(-r2, r2+1):
for y in range(-r2, r2+1):
distance_squared = x ** 2 + y ** 2
if r1 ** 2 <= distance_squared <= r2 ** 2:
count += 1
return count
""" ๋ ํ์ด ๋ชจ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์..
-> ์๋ง ์ด์ค for๋ฌธ์ ํตํด ๋ชจ๋ ์ขํ๊ฐ์ ๊ตฌํ๋ ค๋ค ๋ณด๋ ๋ฐ์ํ ๋ฏํจ."""
์ต์ข ํ์ด
def solution(r1, r2):
r1_sqr = r1 ** 2
r2_sqr = r2 ** 2
count = 0
for i in range(0, r1):
count += int(math.sqrt(r2_sqr - i**2)) - int(math.sqrt(r1_sqr - i**2 - 1))
for i in range(r1, r2):
count += int(math.sqrt(r2_sqr - i**2))
return count * 4 # 1์ฌ๋ถ๋ฉด์์ ๊ตฌํ count๋ฅผ ๋ชจ๋ 4๊ฐ์ ์ขํ์ ๋ํด ์ ์ฉํ๊ณ ์ 4๋ฐฐ์ ํจ.