๐ ๋ฌธ์ ๋งํฌ
2734๋ฒ: ๋๋ผํต ์๊ธฐ
๐ ๋ฌธ์ ์์ฝ
๋๋ผํต์ ๋ํ์ ์ง์ฌ๊ฐํ ์ฐ๋ ๊ธฐํต์ ์์ผ๋ ค๊ณ ํ๋ค. ํ ์คํธ ์ผ์ด์ค์ ๊ฐฏ์ T๊ฐ ์ฃผ์ด์ง๋ฉฐ, ๊ฐ ์ผ์ด์ค์์ ์ด๊ธฐ์ ๋์ผ๋ ค๋ ๋๋ผํต์ ๊ฐฏ์ N๊ณผ ๊ฐ ๋๋ผํต์ x ์ขํ N๊ฐ๊ฐ ํ ์ค์ ์ฃผ์ด์ง๋ค. ๊ฐ์ฅ ์๋ซ์ค์ ์ ์ธํ ๋ชจ๋ ์ค์ ๋ฐ๋ก ์๋ซ์ค์ ๋๋ผํต 2๊ฐ์ ์ ํ๋ฉฐ, ๋ฐ๋ก ์๋ ์ค๋ณด๋ค ํ๋ ์ ์ ๋๋ผํต๋ค์ด ์๋ค. ๊ฐ์ฅ ์์ ์๋ ๋๋ผํต์ x์ y ์ขํ๋ฅผ ์์์ ๋ท์งธ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๋ผ. ๋จ, ๋๋ผํต ์๋ฉด์ ๋ฐ์ง๋ฆ์ 1์ด๋ค.
๐ฟ ํ์ด ์ค๋ช
์ ๋ต ์ฝ๋
import sys
input=sys.stdin.readline
T=int(input().rstrip())
for _ in range(T):
N, *drums=map(float, input().rstrip().split())
N=int(N)
drums_x=list(drums)
init_drums=[]
for i in range(N):
init_drums.append((drums[i], 1))
drums=[[] for _ in range(N)]
drums[0]=sorted(init_drums)
i=1
for k in range(N-1, 0, -1):
if i==1:
for j in range(k):
x1, y1=drums[i-1][j]
x2, y2=drums[i-1][j+1]
x=(x1+x2)/2
y=y1+(4-((x2-x1)**2)*(1/4))**(1/2)
drums[i].append((x, y))
elif i>1:
for j in range(k):
x1, y1=drums[i-1][j]
x2, y2=drums[i-1][j+1]
ave_x, ave_y=(x1+x2)/2, (y1+y2)/2
x3, y3=drums[i-2][j+1]
dx, dy=ave_x-x3, ave_y-y3
x=ave_x+dx
y=ave_y+dy
drums[i].append((x, y))
i+=1
print(f'{drums[N-1][0][0]:.4f} {drums[N-1][0][1]:.4f}')
๋๋ผํต ์ค์ฌ์ผ๋ก ๊ทธ๋ ค์ง๋ ์ผ๊ฐํ์ ๋ณ ๊ธธ์ด๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ๋ฏ๋ก, ๊ธธ์ด๋ก ํ์ด๋ณด๋ ค ํ์์ผ๋ ๊ด์ฐฐ์ ๊ธฐ๋ฐํ์ฌ ์ฐ์ฐํ ๋ฐ๊ฒฌํ ๊ฐ ๋๋ผํต ์ขํ์ ๊ด๊ณ์ฑ์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
๋ฐ๋์๊ฒ ๊ณ ๋ฏผํ ์๊ฐ์ ์๋์ง๋ง, ์ฝ 1์๊ฐ 30๋ถ ์ ๋ ์์ํด์ ํผ ๋ฌธ์ ์ด๋ค.
์๋1: ๋๋ผํต ์ค์ฌ์ ์ฐ๊ฒฐํ ์ผ๊ฐํ ๋ณ์ ๊ธธ์ด๋ก ์ขํ๋ฅผ ์ ์
์ฒ์ ํ ๊ฒ์, ์์ ๋๋ผํต์ ์์์ ๋ ์๋์ ๊ฒ์ด ๊ตด๋ฌ๊ฐ์ ์์ ๊ฒ์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ์ผ์ด์๋ค.
๋ฌธ์ ์ ์กฐ๊ฑด์์ ๋๋ผํต์ ๊ฐ๊ฒฉ์ 2.0 ์ด์, 3.4 ์ดํ๋ก ์ฃผ์ด์ ธ์ ์์ ๋๋ผํต์ด ๋จ์ด์ง์ง ์๊ณ ๋ ์ธต ์๋์ ๋๋ผํต๊ณผ๋ ์ ํ์ง ์์ ์ ์์ด ๋ณด์๋๋ฐ, ์ค์ ๋ก ๊ทธ๋ ๋ค๋ ๊ฒ์ ์๋์ ๊ฐ์ด ๊ฒ์ฆํ ์ ์์๋ค.
์ฒซ ์๋์์๋ 2์ธต ๋๋ผํต์ ์ขํ๋ฅผ 1์ธต์ ์ ํ ๋๋ผํต๋ค์ ์ขํ๋ก๋ถํฐ ๊ตฌํ๊ณ , ์ด๋ฅผ ์ผ๋ฐํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ์๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋๋ผํต์ ์ค์ฌ์ ์ด์ด ์ผ๊ฐํ์ ๋ง๋ค๋ฉด ์๋ณ์ ๊ธธ์ด๊ฐ 2์ธ ์ด๋ฑ๋ณ ์ผ๊ฐํ์ด๋ฏ๋ก, ์๋์ ๊ฐ์ด dy๋ฅผ ๊ตฌํ์ฌ 2์ธต ๋๋ผํต์ ์ขํ๋ฅผ ๊ตฌํ ์ ์๋ค.
ํ์ง๋ง, ์ด ๋ฐฉ๋ฒ์ 2์ธต ๋๋ผํต์์๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฆฝํ๊ณ 3์ธต ์ด์์์๋ ์ ๋ต์ ๋ณด์ฆํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์์ ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋ณด๊ณ ๋ ํ ๊นจ๋ฌ์๋ค.
์๋์ ์ ํ ๋๋ผํต๋ค์ ๋์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ผ๊ฐํ์ ๋์ด๊ฐ y ์ขํ์ ๋ณํ๋์ผ๋ก ์ง๊ฒฐ๋์ง ์์๋ ๊ฒ์ด๋ค.
์๋2: ๋๋ผํต ์ขํ์ ๋์นญ์ฑ ๋ฐ๊ฒฌ
์ดํ์ ์๋์ ์ ํ ๋ ์ ์ ์ฐ๊ฒฐํ ์ง์ ์ ์์ง์ ์ผ๋ก๋ถํฐ ์ขํ๋ฅผ ์ป๊ฑฐ๋ ์ผ๊ฐ๋น๋ฅผ ํ์ฉํด๋ณด๋ ค๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์๋๋ฅผ ํ์์ผ๋, ๋ฐฉ์ ์์ ํธ๋ ๋ฐฉ๋ฒ์ ์ฝ๋๋ก ์ง๊ธฐ์ ๋ฌด์ฒ ๋นํจ์จ์ ์ด๋ผ ๋๊ปด์ ธ์ ๊ณ์ํด์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๋ค.
์๊ฒ๊ณผ ๊ฐ์ ์๊ฐ์ด ํ๋ฅด๊ณ ... ๊ทธ๋ฆผ์ ๊ฐ๋งํ ๋ณด๋๋ฐ ๊ท์น์ฑ์ด ๋ณด์๋ค.
์๋์ ์ ํ ๋ ๋๋ผํต๊ณผ, ๊ทธ ๋๋ผํต๋ค์ ๋์์ ์ ํ๋ ๋๋ผํต์ด ์ขํ๋ฅผ ๊ตฌํ๊ณ ์ ํ๋ ๋๋ผํต๊ณผ ์ ๋์นญ์ฒ๋ผ ๋ณด์๋ค.
'์ ์ด๊ฑฐ๊ตฌ๋'ํ๊ณ ์ฝ๋๋ฅผ ์ง์ ์ ์ถํ๋๋ฐ, ์ ๋ต์ด์๋ค!
๋ค์ ๋ฌธ์ ๋ฅผ ์ดํผ๋ ์ง๊ธ, ์ด๋ฑ๋ณ ์ผ๊ฐํ์ ๋์ด์ ๋ง๋ฆ๋ชจ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ด๋ฅผ ํตํด ๋์นญ์ฑ์ ํ์ ํ๋ ๊ฒ์ด ๋ฌธ์ ์ ์๋๊ฐ ์๋์์๊นํ๊ณ ์ถ์ธกํ๋ค.
์ด ๋ฌธ์ ๋ฅผ ํผ ๊ฒ์ด ํน๋ณํ๊ฒ ๋๊ปด์ง๋ ์ด์ ๋, ์ธํฐ๋ท์๋ ๋ฐ๋ก ์ ๋ต ์ฝ๋๋ ์ค๋ช ์ด ์์๋ ๋ฌธ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ ์ด์๋ค๋ฉด ํฌ๊ธฐํ์์ ๊ฒ ๊ฐ์ ๋ฌธ์ ๋ผ, ์ค๋๋ฐ๋ผ ๋ฌธ์ ํด๊ฒฐํ ๊ฒ์ด ๊ธฐ๋ถ ์ข๋ค!
'๐ป ์ปดํจํฐ๊ณตํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1987: ์ํ๋ฒณ (ํ์๋ฐ๋ ํ์ด์ฌ, ๊ทนํ์ ์์ ์๊ฐ ์ค์ด๊ธฐ) (6) | 2024.01.25 |
---|---|
[Python] 27914: ๋ธ์ค์ด์ ๊ตฌ์ฌ ์์ด์คํฌ๋ฆผ (0) | 2024.01.17 |
[Python] ๋ฐฑ์ค 1876: ํ๊ธฐ๋ ๋ณผ๋ง๊ณต (5) | 2024.01.09 |
[Python] 1167: ํธ๋ฆฌ์ ์ง๋ฆ (ํธ๋ฆฌ ์ง๋ฆ์ ์ฑ์ง, ๊ท๋ฅ๋ฒ ์ฆ๋ช ) (0) | 2024.01.07 |
[Python] ๋ฐฑ์ค 1916: ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (dijkstra) (0) | 2024.01.07 |