๊นจ์ด
1. XNUMX์ธ์ฉ ํ์ด
๋ฌธ์ ์ฑ๋ช
์ ํ ์๊ฐ์ 4์ด์ ๋๋ค.
๋น์ ์ ํ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์์ ๋ณด๋ฉด ์ผ์ดํฌ๋ (์์ ํ) ๋ณผ๋กํ ๋ค๊ฐํ ๋ชจ์์ ๊ฐ์ต๋๋ค. X ๋ฐ Y ์ ์๋ก ์ ์ ์ ์ขํ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋น์ ์๊ฒ๋ ๋ค์ฏ ๋ช ์ ์น๊ตฌ๊ฐ ์์ต๋๋ค. ํ์ด๋ฅผ ๋์ผํ ๋ฉด์ ์ XNUMX๊ฐ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ ์ถ์ต๋๋ค(๋จ, ๋ชจ์์ด ๋ฐ๋์ ๋์ผํ ํ์๋ ์์). ๋ฌผ๋ก XNUMX์ปท์ด๋ฉด ๋๊ตฌ๋ ํ ์ ์์ง๋ง XNUMX์ปท์ด๋ฉด ํ๋ก๋ง์ด ํ ์ ์๋ค.
ํ์ด๋ฅผ 1๊ฐ์ ๋์ผํ ๋ถ๋ถ์ผ๋ก ๋๋๋ ํ ์ ์ ํตํด ์ง์ ์ผ๋ก ์ธ ๊ฐ์ ์ ๋จ์ ์ฐพ์ผ์ญ์์ค. {x, y, d2, d3, d1}๋ฅผ ์ธ์ํฉ๋๋ค. ์ฌ๊ธฐ์ (x, y)๋ ์ธ ์ปท ๋ชจ๋์ ๊ณตํต์ ์ด๊ณ d2, d3, dXNUMX์ ์ปท์ ๋ฐฉํฅ ๊ฐ๋(๋ผ๋์)์
๋๋ค.
์ ์ํด๋์ค: CakeForSix
๋ฐฉ๋ฒ:์ปท
๋งค๊ฐ๋ณ์: int[], int[] ๋ฐํ: double[] ๋ฉ์๋ ์๋ช
: double[] cut(int[] x, int[] y)
(๊ทํ์ ๋ฐฉ๋ฒ์ด ๊ณต๊ฐ๋์ด ์๋์ง ํ์ธํ์ญ์์ค)
์ฐธ๊ณ ์ฌํญ
- x์ถ์ ์์ ๋ฐฉํฅ์ 0(๋ผ๋์)์ด๊ณ , y์ถ์ ์์ ๋ฐฉํฅ์ pi/2(๋ผ๋์)์ ๋๋ค.
- d ๋ฐฉํฅ์ ์ ๋จ์ ์์์ ์ ์ k์ ๋ํ pi*k+d ๋ฐฉํฅ์ ์ ๋จ๊ณผ ์ ์ฌํฉ๋๋ค.
- ์์์ ๋ฐฉํฅ์ ์ถ๋ ฅํ ์ ์์ผ๋ฉฐ ๋ฐ๋์ [0, pi)์์ ๋์ฌ ํ์๋ ์์ต๋๋ค.
- ๊ทธ๋ ์ด๋๋ ์ผ์ดํฌ ์ฌ์ฏ ์กฐ๊ฐ์ ๋ฉด์ ์ ๋ ๋ฐฐ๋ก ๊ณ์ฐํฉ๋๋ค. ๋ ์ฌ์ด์ ์๋ ๋๋ ์ ๋ ์ฐจ์ด๊ฐ 10^(-4) ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ๋ต๋ณ์ด ํ์ฉ๋ฉ๋๋ค.
- ๋ณด๋ค ์ ํํ๊ฒ๋ X์ Y๋ฅผ ์ฑ์ ์๊ฐ ๊ณ์ฐํ 10๊ฐ ์์ญ ์ค ๊ฐ์ฅ ์์ ์์ญ๊ณผ ๊ฐ์ฅ ํฐ ์์ญ์ผ๋ก ์ง์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทํ์ ๋๋ต์ Y์ธ ๊ฒฝ์ฐ ์๋ฝ๋ฉ๋๋ค.
- (๋ฌธ์ ์ ์๋ ๋ฒ์ ์ 1e-7 ๋์ 1e-4์ ์ ๋ฐ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์์นด์ด๋ธ์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋ฐ๋๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋ง๋ค ๊ฐ๋ฅ์ฑ์ด ์๋ ํธ์ถ ์ฌ๋ก๊ฐ ์กด์ฌํ๋ฏ๋ก ์ ๋ฐ๋ ์ ํ์ ๋ฎ์ท์ต๋๋ค. 1e-7์ ์ด์์ ์ธ ์ธ๊ณ์์๋ ํ๊ณ๊ฐ ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ํ์ฉํ์ง ์์ผ๋ฉฐ ์ฌ์ ํ ๋์ ์ ๋ฐ๋๊ฐ ์๊ตฌ๋๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์์น ์ต์ ํ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ฝ์ง ์์ต๋๋ค.)
์ ํ
- x์๋ 3~50๊ฐ์ ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
- y๋ x์ ๋์ผํ ์์ ์์๋ฅผ ํฌํจํฉ๋๋ค.
- 0์์ 10 ์ฌ์ด์ ๋ชจ๋ ์ขํ
- x์ y๋ ์๊ณ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋ณผ๋กํ ๋ค๊ฐํ์ ์ ์ํฉ๋๋ค.
์์ด ์๋ณธ
๋ฌธ์ ์ ์ฑ
์ ํ ์๊ฐ์ 4์ด์ ๋๋ค.
๋น์ ์ ์ผ์ดํฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์์ ๋ณด๋ฉด ์ผ์ดํฌ๋ (์์ ํ) ๋ณผ๋กํ ๋ค๊ฐํ์ ๋๋ค. int[]sx์ y์ ์ ์ ์ ์ขํ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋น์ ์๊ฒ๋ ๋ค์ฏ ๋ช ์ ์น๊ตฌ๊ฐ ์์ต๋๋ค. ์ด์ ์ผ์ดํฌ๋ฅผ ๋์ผํ ๋ฉด์ (๊ทธ๋ฌ๋ ๋ฐ๋์ ๋์ผํ ๋ชจ์์ ์๋)์ XNUMX๊ฐ ์กฐ๊ฐ์ผ๋ก ์๋ฅด๊ณ ์ถ์ต๋๋ค. ๋ฌผ๋ก ๋๊ตฌ๋ XNUMX์ปท ์์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ง์ ํ ํ๋ก๋ง์ด XNUMX์ปท ๋ง์ ํ ์ ์์ต๋๋ค!
์ผ์ดํฌ๋ฅผ 1๊ฐ์ ๋์ผํ ํฌ๊ธฐ๋ก ์๋ฅด๋ ๋์ผํ ์ ์ ํต๊ณผํ๋ ์ธ ๊ฐ์ ์ง์ ์ ๋จ์ ์ฐพ์ผ์ญ์์ค. {x, y, d2, d3, d1}๋ฅผ ๋ฐํํฉ๋๋ค. ์ฌ๊ธฐ์ (x, y)๋ ์ธ ์ปท์ ๊ณตํต์ ์ด๊ณ d2, d3, dXNUMX์ ๋ผ๋์ ๋จ์์ ๋ฐฉํฅ์ ๋๋ค.
์ ์
ํด๋์ค: CakeForSix
๋ฐฉ๋ฒ:์ปท
๋งค๊ฐ๋ณ์: int[], int[] ๋ฐํ: double[] ๋ฉ์๋ ์๋ช
: double[] cut(int[] x, int[] y)
(๊ทํ์ ๋ฐฉ๋ฒ์ด ๊ณต๊ฐ๋์ด ์๋์ง ํ์ธํ์ญ์์ค)
๋
ธํธ
โ x์ถ์ ์์ ๋ฐฉํฅ์ 0(๋ผ๋์)์ด๊ณ , y์ถ์ ์์ ๋ฐฉํฅ์ pi/2(๋ผ๋์)์
๋๋ค.
โ d ๋ฐฉํฅ์ ์ ๋จ์ ์์์ ์ ์ k์ ๋ํด pi*k+d ๋ฐฉํฅ์ ์ ๋จ๊ณผ ๋์ผํฉ๋๋ค.
โ ์ด๋ค ๋ฐฉํฅ์ด๋ ๋ฐํํ ์ ์์ต๋๋ค. ๋ฐ๋์ [0,pi)์์ ์ฌ ํ์๋ ์์ต๋๋ค.
โ ์ฑ์ ์๋ 10๊ฐ ์ผ์ดํฌ ์กฐ๊ฐ์ ๋ฉด์ ์ ๋ ๋ฐฐ๋ก ๊ณ์ฐํฉ๋๋ค. ๋ ์ฌ์ด์ ์๋ ๋๋ ์ ๋ ์ฐจ์ด๊ฐ 4^(-XNUMX) ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ๋ต๋ณ์ด ํ์ฉ๋ฉ๋๋ค.
โ ๋ณด๋ค ์ ํํ๊ฒ๋ X์ Y๋ฅผ ์ฑ์ ์๊ฐ ๊ณ์ฐํ 10๊ฐ ์์ญ ์ค ๊ฐ์ฅ ์์ ์์ญ๊ณผ ๊ฐ์ฅ ํฐ ์์ญ์ผ๋ก ์ง์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Y < max( X + 4^(-1), X * (10+4^(-XNUMX)) )์ธ ๊ฒฝ์ฐ ๋ต๋ณ์ด ํ์ฉ๋ฉ๋๋ค.
โ (๋ฌธ์ ์ ์๋ ๋ฒ์ ์ 1e-7 ๋์ 1e-4 ์ ๋ฐ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์์นด์ด๋ธ์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์
์ 1e-7 ์ ๋ฐ๋๋ก ํด๊ฒฐํ ์ ์๊ฒ ๋ง๋๋ ๋ฌธ์ ์ฌ๋ก๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ ๋ฐ๋ ์ ํ์ด ๋ฎ์์ก์ต๋๋ค. ์ด์์ ์ธ ์ธ๊ณ์์๋ ์ ์ฝ ์กฐ๊ฑด์ด ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ํ์ฉํ์ง ์๊ณ ์ฌ์ ํ ๋์ ์ ๋ฐ๋๋ฅผ ์๊ตฌํ๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์์น ์ต์ ํ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค.)
์ ์ฝ
โ x์๋ 3~50๊ฐ์ ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
โ y๋ x์ ๋์ผํ ์์ ์์๋ฅผ ๊ฐ์ต๋๋ค.
โ ๋ชจ๋ ์ขํ๋ 0์์ 10,000 ์ฌ์ด์
๋๋ค.
โ x์ y๋ ์๊ณ ๋ฐ๋ ๋ฐฉํฅ ์์๋ก ๋ณผ๋ก ๋ค๊ฐํ์ ์ค๋ช
ํฉ๋๋ค.
์
0)
{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
๋ฐํ :
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }
๋์นญ์ด์ง๋ง ๋ถ๊ท์นํ ์ก๊ฐํ์ ๋๋ค. ์์ ๋ต๋ณ์ ์ํ์ผ๋ก ๋ฐ์ผ๋ก ์๋ฅด๊ณ ๊ฐ ์กฐ๊ฐ์ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋๋ ์ค์์ ๋ ๊ฐ์ ๋ค๋ฅธ ์ ๋จ์ ๋ง๋๋ ๊ฒ์ ํด๋นํฉ๋๋ค.
1)
{0, 1000, 0}
{0, 0, 1000}
๋ฐํ :
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }
์ ์ผ๊ฐํ. ์ด๋ฒ์๋ ๋์นญ์ถ์ ๋ฐ๋ผ ์ธ ๊ฐ์ ์ ๋จ ์ค ํ๋๋ก ์์ํ ์ ์์ต๋๋ค.
2)
{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
๋ฐํ :
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }
๋ถ๊ท์นํ ์ค๊ฐํ.
3)
{300, 400, 300, 200}
{500, 600, 700, 600}
๋ฐํ: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705 }
45๋ ํ์ ํ ์ ์ฌ๊ฐํ์ ๋๋ค.
[
๋ฑ๋ก๋ ์ฌ์ฉ์๋ง ์ค๋ฌธ ์กฐ์ฌ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
-
10๋ถ ์ด๋ด
-
10 - 30 ๋ถ
-
30 - 60 ๋ถ
-
1 - 2 ์๊ฐ
-
2์๊ฐ ๋๊ฒ
-
๋ค๋ฅธ
42๋ช
์ ์ฌ์ฉ์๊ฐ ํฌํํ์ต๋๋ค. 47๋ช
์ ์ฌ์ฉ์๊ฐ ๊ธฐ๊ถํ์ต๋๋ค.
์ถ์ฒ : habr.com