step 1. ์ต์ ํ ํด์ผ ํ ๊ฒ ์ฐพ๊ธฐ.
์ต์ํ ์ต์ ํ๋ฅผ ์์ํ๋ ค๋ฉด ๋ญ ์ต์ ํ ํด์ผํ ์ง ์ฐพ์์ผ ์ต์ ํ๋ฅผ ํ ์์์.
ํ๋กํ์ผ๋ฌ๊ฑด, ๋ก๊ทธ ์์ง์ด๊ฑด, ํ ์คํธ๊ฑด ์ด๋์ ๋ณดํ๋ฅ์ด ๊ฑธ๋ฆฌ๋์ง ์ฐพ์์ผํจ.
๊ฒ์ ์ญ์ ํ๋ก๊ทธ๋จ์ด๊ณ , ํ๋ก๊ทธ๋จ์ ๊ฒฉ์ธ์ ๋ฐ๋ผ 20:80 ๋ฒ์น์ด ์์ฃผ ์ ์ด๋ค์ง๋๊ณณ์ค ํ๋์.
20%์ ์ฝ๋๊ฐ 80%์ ๋ถํ๋ฅผ ๋ด๋นํ๋ค๊ฑฐ๋,
ํต์ฌ ์ฝ๋๊ฐ 20%๋ผ๋ฉด ๋๋จธ์ง 80%๋ ๋จ์ํ ๊ฒํฐ/์ธํฐ์ ๋ถ๊ณผํ๋ค๋์ง ํ๋ ๋ฑ๋ฑ์ ๊ฒฉ์ธ์ด ๊ทธ๋๋ก ์ ์ฉ๋จ...
๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ ๊ฒ์์ ๋ง์น๋ 20%๋ ์ด๋์ ์์๊น?
์ด๋ก ์ ์ผ๋ก ๊ฒ์์ ์๊ณ ๋ฆฌ์ฆ ์ ์๊ฐ๋ณต์ก๋ ๋ถํฐ ์์๋ณด์.. (๊ณต๊ฐ ๋ณต์ก๋๋ ํฌ๊ธฐํ๋ค! ์ผ์ !)
๋์ถฉ ์ด๋ฐ๊ฑธ๋ก ๋๋๋๋ฐ O(~~) ~~์ ์๋ ์ซ์๋ฅผ ๋ฃ์ด์ ์.
1(constant) - ย ์ ๋ ฅ์๋ฃ์ ์์ ๊ด๊ณ ์์ด ์ผ์ ํ ์คํ ์๊ฐ์ ๊ฐ์ง.ย
์๋ฅผ ๋ค์ด ๋ฆฌ์คํธ ๊ฐ์ ๊ฒฝ์ฐ์ isEmpty ๊ฐ์ ํจ์๊ฐ ์์์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ๋ณด๋ฉด ๋จ. ๋๋ ํด์ฌ๋งต์ ์์น ์๊ฐ ๋ฑ๋ฑ์ด ์์.
log N(๋ก๊ฐ๋ฆฌ์ด) - ๋ง์ฝ ์ ๋ ฅ ์๋ฃ์ ์์ ๋ฐ๋ผ ์คํ ์๊ฐ์ด ์ด log N ๋งํผ ๊ฑธ๋ฆผ. (์ฌ๊ธฐ์ log๋ log2๋ฅผ ์ฃผ๋ก ๋งํจ. ์ด์ง์๋ผ ๊ทธ๋ผ.)ย
์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ์ด์ง ํ์์ด ์ด๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆผ. ย ๋๋ ์ด์ง ํ์ ํธ๋ฆฌ์ ํ์ ์๊ฐ ?
N(Linear) - ์ ๋ ฅ ์๋ฃ์ ์์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์คํ ์๊ฐ์ด ๊ฑธ๋ฆผ
for loop ๋ฐ ์ฌ๋ฌ ๋ฃจํ ๋ ๊ทธ๋ฅ ๋ฆฌ์คํธ์ ํ์ ์๊ฐ ์ด ์ด๋ผ.ย
N logN - ์ ๋ ฅํ ์๋ฃ์ ์์ ๋ฐ๋ผย nlogn๋งํผ ๊ฑธ๋ฆผ.
๋จธ์ง์ํธ (merge sort)๋ ํต์ํธ (quick sort) ๋ฑ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋์. ์๋ค์ ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ์ฌ๋ผ๊ฐ ๋์ ์๊ฐ์ ์ก์๋ค ๋ผ๊ณ ๋ณด๋ฉด ๋จ.ย
N^2(quadratic) - ์ ๋ ฅํ ์๋ฃ์ ์์ ์ ๊ณฑ๋งํผ ๊ฑธ๋ฆผ.ย
๋ฒ๋ธ ์ํธ, ์ ๋ ์ , ์ธ์ค์ ์ํธ, ๋ฌผ๋ฆฌ ์์ง ์๊ณ ๋ฆฌ์ฆ ๋ฑ๋ฑ์ด ์ด๋ฐ๋ฐ ์ํจ.
N^3 (Cubic) -ย ์ ๋ ฅํ ์๋ฃ์ ์์ ์ธ์ ๊ณฑ๋งํผ ๊ฑธ๋ฆผ.ย
์ด๋ฐ๊ฑด ๋ฑํ ๋ณธ์ ์ด ์์ง๋ง 3์ค๋ฃจํ ๋๋ฆฌ๋ฉด ์ด๋ ๊ฒ ๋จ. ์๋ฅผ ๋ค์ด ย a,b,c๋ฅผ ๋น๊ตํด์ผ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ง ์ด๋ด๊ฑฐ์.
2^nย (์ง์ํจ์;;) - ์ด๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ณธ์ ์์ด์ ๋ชจ๋ฅด๊ฒ ์;; ๋์ถฉ ์ ์ ํ์ด๋ ์๋ฌผํ, ์ฌํ๊ณผํ ๋ฑ๋ฑ์ ๊ฒฝ์ฐ๋ ์ด๋ฐ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
๋ฌผ๋ก ์ด ์ด์๋ ์๊ณ ... ๊ทธ๋์ ์ํ์ ์ ์์์ผ;;
๊ณต๊ฐ ๋ณต์ก๋๋ย
array๊ฐ ๊ฐ์ฅ ์ข๊ณ , vector, list, map/set, unorderd map(hash map) ๋ฑ๋ฑ์ ์์๋ก ๋ณต์กํด์ง.
array๋ list ๋ ์ด๋ก ์ ์ผ๋ก ๋น์ท ํ๊ฑฐ ์๋?
ํ ์ ์๋๋ฐ cpu์์ ๋๋ ์บ์๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ด๊ฐ ๋ ์ข์.ย
์ค์ ๋ก ํด์ฌ๋งต์ผ๋ก O(1) ๋ก ์ฐพ์์ค๋๊ฒ๊ณผ ์ด๋ ์ด์์ O(N) ์ผ๋ก ์ฐพ์์ค๋๊ฒ์ ์คํ ์๋๊ฐ ๋น์ทํจ.
๊ทธ๋์ ๋ฆฌ์คํธ๊ฐ ์ฐ๊ธฐ ํธํด๋ vector ๋ array๋ฅผ ์ฐ๋๊ฑฐ๊ณ
union๊ณผ malloc/free๋ฅผ ์์ง๊น์ง ์ฐ๊ณ ์๋ค๊ณ ๋ณด๋ฉด ๋จ.
๋ค์ ๋ณธ๋ฌธ์ผ๋ก ๋์๊ฐ์
๊ฒ์์์ ์ด๋ก ์ ์ผ๋ก ๊ฒ์ ๋ก์ง์ O(N) ๋งํผ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ
๊ทธ๋ํฝ์ O(N) ~ O(NlogN) ๋งํผ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง. (์ด์์ ์ผ ๊ฒฝ์ฐ O(N), ์ต์ ์ ๊ฒฝ์ฐ O(NLogN))
๋ฌผ๋ฆฌ๋ O(N^2) ๋งํผ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋จ.
์ฌ๊ธฐ์์ ๋ก์ง์ ์๊ฐ๋ณต์ก๋๋ ๋ก์ง์ ์ฒด๋ฅผ ์คํํ๋๋ฐ N ๋ฒ๋งํผ์ ์คํ์ด ํ์ ํ๋ค๋ ๋ป์.
์ด ๋ง์ ์ค๋ธ์ ํธ์ ๊ฐ์ฒด์, ์ถฉ๋์ฒด, ์คํ๋ผ์ดํธ๊ฐ ์๊ณ , ์ปจํธ๋กค๋ฌ ๋ก์ง ๊น์ง ์๋ค๋ฉด
์ด ์ค๋ธ์ ํธ๊ฐ ์ถ๊ฐ ๋์์์ย ๊ฐ๊ฐ์ ์์คํ ์ ์ ๋งํผ์ N+1์ ๋ถํ๋ฅผ ๋ ์ค๋ค๋ ๋ป์.
์ฌ๋๋ค์ ๋๋ํด์? ๊ทธ๋ํฝ์ ๊ฒฝ์ฐ์๋ ์ปฌ๋ง๊ณผ, ํด๋ฆฌํ ๋ฑ๋ฑ์ ์ด์ฉํด์ ๋ถํ๋ฅผ ์ค์ฌ์ค.
(๊ทธ๋ํฝ์ ๋๋ฐฐ์์ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ชจ๋ฅด๊ฒ ์๋๋ค... ใ ใ ํฉ๋๋ค...)
๋ฌผ๋ฆฌ์ ๊ฒฝ์ฐ์๋ Broad Phase ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ๋ถํ๋ฅผ ์ค์ฌ์ค.ย
๋์ถฉ ๋ฐฉ์๋ค์ ๋งํ์๋ฉด N์ ์ซ์๋ฅผ ์ค์ฌ์ฃผ๋ ๊ณ์ฐ ๋ฐฉ์์.
๋ฌผ๋ฆฌ์ ๊ฒฝ์ฐ O(N^2) ์ ์คํํ๊ธฐ์ ์, O(N)์ ๋ ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ํตํด์,
N์ ์ซ์๋ฅผ ํ์ ํ๊ฒ ์ค์ด๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ต์ ํ๋ฅผ ํจ.
๋์ถฉ ์ด์์ ์ธ ์ํฉ์์ R-Tree ๋ฐฉ์์ ๋ธ๋ก๋ ํ์ด์ฆ๋ฅผ ํ๋ค๊ณ ๋ณด์.ย
ํ๊ณ objject๋ฅผ 3๊ฐ๋ผ ๋๊ณ , ์ค๋ธ์ ํธ 1000๊ฐ๊ฐ ๋๋ค๋ฉด,
O(1000) ์ดํ์ O(1800) ์ ํ๋์์ผ๋ก ์ค์ด๋ค ์ฌ์ง๊ฐ ์์.
๊ทธ๋ฅ ํ๊ฒ ๋๋ค๋ฉด O(1000000) ๋งํผ ๋์๋ฒ๋ฆฌ๋ ํ์์ด ์ผ์ด๋จ....
์ด๋ ๊ฒ ๋๋ฉด O(1000000) ์ย O(2800)์ ์ฐจ์ด๋ ๊ฒ์์์ ์์ฒญ ํฐ ํจ๊ณผ๋ฅผ ๋ถ๋ฌ ์ผ์ผํฌ์ ์์.
์ด๋ฐ ์ํฉ์ ๋ฌผ๋ก ๋ณ๋ก ์๊ณ , O(1000000) ์ ๋๋ค๋ฉด O(5000~50000) ์ ๋์ ๊ธฐ๋๊ฐ์ด ์๋ค๊ณ ๋ณด๋ฉด ๋จ.
์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋์ถฉ ์คํ์๊ฐ์ด 1/5000 ๋ฐฐ ๋งํผ ์ค์ด๋ค๊ฑฐ๋ ์ ์ด๋ 1/100 ๋ฐฐ ๋งํผ ์ค์ด๋ ๋ค๊ณ ํจ.
๋ฌผ๋ก ๊ณผ๋ํ๊ฒ ์ต์ ํ๋ฅผ ํ๊ฒ๋๋ฉด, ์ถฉ๋ ํ์ง๋ง, ์ถฉ๋์ ์ํ๋ค๊ณ ์ธ์ํ๋์ง, ๊ฐ์๊ธฐ ์๋๊ฐ ํ์ด๋ฒ๋ฆฐ๋ค๋์ง
์ด๋ฐ ๋ถ์์ฉ์ด ์๊ฒจ์. ๋์ ํ ์์ธ์ ์์ ์๋ ๋ฒ๊ทธ์ ์์ธ์ด ๋๊ธฐ๋ ํจ.ย
์ ๋ช ํ ๋ฌผ๋ฆฌ์์ง์ธ ๋ฐ์ค 2D ๋ ๋ถ๋ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ง์ง ๊ณต๊ฐ ๋ณต์ก๋๊น์ง ์์ฒญ ๊ณ ๋ ค ํด์ ์งฐ๊ธฐ ๋๋ฌธ์
์คํ์๊ฐ์ด ์ง์ ๋ง๋ ์์ง์ ๋นํด ์์ฒญ๋๊ฒ ๋น ๋ฅธ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ํจ. (๊ทธ๋์ ์์ฉ์์ง๋ค๋ ์ ๋ฌผ๋ฆฌ์์ง์ ์ฐ๋๊ฑฐ...)
ํ๋ณต์ด๋ ํผ์ง์ค๋ ๋งํ ๊ฒ๋ ์๋ค๊ณ ๋ณด๋ฉด ๋ ๋ฏ.
๊ทธ๋ผ step 2. ์ต์ ํ๋ฅผ ํด๋ณด์;;
์๊ฑด ๋ฌผ๋ฆฌ์์ ์ต์ ํ ํ ๋งํ ๋ฐฉ๋ฒ์.
์ด๊ฑด ๋ ์์ ํ ๋ฐฉ์์ธ๋ฐ, ๊ณ ์ ์ ์ด์ง๋ง ํ์คํ ๋ฐฉ๋ฒ์ค ํ๋์.
๋ (์๋ ๊ฑฐ)์ ๊ฒฝ์ฐ๋ ์ ํฌ๊ฐ ์ผ์ด๋ ๋ ํ ๋ฐฉ์์ ์ผ์ด๋๋๋ฐ, ์งฑ๊ฐ์์ผ๋ก ๋ชจ๋ ์ค๋ธ์ ํธ๋ฅผ ๊ฒ์ฌํ์ง ๋ง๊ณ ,
์ด ๋ฐฉ๋ง ๊ฒ์ฌ ํ๋ ๋ฐฉ์์ผ๋ก ํ๋๊ฑฐ์.ย
๊ทธ๋ ๊ฒ ๋์์ ๋ ๋ณต๋ ๋ ์ด๋ฐ๊ณณ์์๋ ์ ์ ์ผ๋ถ๋ฌ ์ถํ์ํค์ง ์๊ฑฐ๋, ์ ๋๋ฉ์ด์ ์ผ๋ก ๋ฐ๋ก ์ด๋ ์ํจ๋ค๋์ง ํ๋ ์์ผ๋กย
๋ฌผ๋ฆฌ ๋ถํ๋ฅผ ํํผ ํ ์ ์์.
์พ๋ํฐ์์ ์ ์ฉํ ๋งํ๊ฒ ์ฌ์ฉํ๋ค๋ฉด,
๊ฒ์ ์ฌ์ ์๊ฒ ์ชผ๊ฒ์
๊ตฌ์ญ ๊ตฌ์ญ๋ง๋ค ์ฌ์ ๋ง๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋๊ฒ ์๋ฐ ๋๋์ด๋ผ ๋ณผ์ ์์.
๋์ ์ ์ด ๊ฒฝ์ฐ์๋ ๊ฒ์ ์คํ ์ดํธ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋๋ฐ ๊ฑธ๋ฆฌ๋ ๋ก๋ฉํ์ ๋ถํ๊ฐ ์๊ธด๋ค๊ณ ๋ณผ์ ์์.
์คํ์๋ ๊ฒ์์์๋ ๋ฆฌ์ ์ ๋ง๋๋ ์์ผ๋ก ์ต์ ํ๋ฅผ ํ๋๊ฑฐ ๊ฐ์๋ฐ, ์ ์์ค์ด ๋ฎ์์ ๋ชจ๋ฅด๊ฒ ์๋๋ค...ย
๊ทธ๋ํฝ์์ ํ ๋งํ ์ต์ ํ ๋ฐฉ๋ฒ.
์ด๊ฑด 2D ๊ฒ์์์ ๊ฐ์ฅ ์ ์ฉํ ํ์ธ๋ฐ 3D์์๋ ๊น์ด ๋ฒํผ ํ ์คํธ ํ ๋ ๋ค ๊ฑธ๋ฌ๋ฒ๋ ค์ ์ด๋ฐ ์ง๊ฑฐ๋ฆฌ๋ฅผ ์ํด๋ ๋๋ค๊ณ ๋ค์์.
2D๊ฒ์์์ alpha ์นผ๋ผ ๊ฐ์ ์กธ๋ผ ์ด์ ๋ฅผ ์์ ์๋ ๋๋ ค์ง์ ์ ๋ฐํ ์ ์์.
๊ทธ๋ํฝ ๋๋๋ง์์ ์์ด๋๊ฐ vertex ๋ฒํผ๋ฅผ ์ง๋๊ณ , ํฝ์ ๋ฒํผ๋ฅผ ๊ณ์ฐํ ๋
ํ ํฝ์ ๋ง๋ค color ๊ฐ์ ๊ณ์ ๋ณ๊ฒฝํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋๋ฐ, ์ด๊ฒฝ์ฐ์ alpha ๊ฐ์.
sort ํ๋ค ํ๋๋ผ๋, ๋ฉ๋ฆฌ์๋ ์๊น๊ณผย ๊ฐ๊น์ด ์๋ ์๊น์ญ์ ์ ๋ถ ๊ทธ๋ ค์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๊น. ๊ทธ๋ฌ๋ค๋ณด๋ ์ค๋ฒ๋๋ก์ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ณ ย
์ด๋๋ฌธ์ ์ต์ ํ ๋ฌธ์ ๊ฐ ์๊ธด๋ค๊ณ ๋ณผ์ ์์.
๋์ถฉ ๋ณด๋ฉด 1920*1080 ์ ํด์๋๋ฅผ ๊ฐ์ง ๊ฒ์์ด๋ผ๋ฉด, ๋งค ํ๋ ์๋ง๋ค 2,073,600 ๊ฐ์ ํฝ์ ์ ๊ทธ๋ ค์ผ ํ๋๋ฐ
ํ๋์ ํฝ์ ์ ์ฌ๋ฌ๋ฒ ๊ทธ๋ฆฐ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด๋ค๊ณ ๋ณผ์ ์์...
๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ฒ๋๋ก์ฐ ์ญ์ ํผํด์ผ ํ๋๋ฐ, ์ด๊ฑด ๋ด ๋๋์ ์ฝ๊ฐ์ ์์จ๊ณผ ์ดํํธ๋ฅผ ํฌ๊ธฐํ๊ณ ,
์ฑ๋ฅ์ ์ป๋ ํจ๊ณผ๋ผ ๋ณผ์ ์์. ๋ฉ๋ฆฌ ์๋ ๋ฐฐ๊ฒฝ์ ์๋ง์ sprite ์ค๋ธ์ ํธ๋ค์ ๋ฐฐ์นํด์ ์๊ธฐ๋ ๋์ด๋ผ ๋ณด๋ฉด ๋จ...
๋ ํํฐํด ์์คํ ์ ์นด๋ฉ๋ผ ์์ ๋๋๊ฒ๋ ํผํ๋๊ฒ ์ข์. ์ด๊ฑฐ๋ ํฝ์ ์ ์ฌ๋ฌ๋ฒ ๊ทธ๋ฆฌ๋๊ฒ ๋ง์์ ธ์ ๋์ด ์๊ธด๋ค๊ณ ๋ณด๋ฉด ๋จ.
๊ฒ์ ๋ก์ง์์ ํ ๋งํ ์ต์ ํ? ํ?
์์งํ ์ด๊ฑด ์ผ๋ฐ์ผ์ธ๋ฐ, ์ด๊ฑด ๋ฃจํ ๋๋ฆฌ๋ ํ ์ ๋? ๊ณ์ฐ ํ๋ ํ? ์ด๋ฐ ์ ๋?
๋ฐ์ ๋ญ๋ผ ์ค๋ช ํด์ค๊ฒ ์์ด ๋ณด์.
๋ฃจํ๋ฅผ ๋๋ฆด๋ ๋ ์ ์๋ํ ํจ์๋ ๋ฐ์์ ์ฌ์ฉํ๊ณ ๋ฃจํ๋ฅผ ๋๋ฆฌ๋๊ฒ ์ข๋ค ์ด๋ฐ๊ฒ๋ค?
for(int i = 0; i < str.length(); ++i)ย {...}
ย ์ด๋ฐ์์ ๋ฃจํ ๋ณด๋ค
int len = str.length();
for(int i=0; i< len; ++i) {...}
์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ๋๊ฒ ํจ์ฌ ์ค์ด๋๋ ํ์ด๋ผ ๋ณผ์ ์์.
์ด ๊ฒฝ์ฐ์ ํ๋กํ์ผ๋ฌ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด A(์์๊ฑฐ) ๋ฐฉ์์ผ๋ก ํ๋ฉดย
length๊ฐ n์ด๋ผ ํ์๋,
str.length(); ํจ์๊ฐ n๋ฒ์ด๋ ๋ถ๋ฆฌ๋ ํ์์ด ์๊น.
๋ฐ๋ฉด์ ์๋๊ฑฐ๋ ํ๋ฒ๋ง ๋ถ๋ฆฌ๊ณ , ์๊ฐ ๋ณต์ก๋๋ก ๋ณด๋ฉดย
O(N) ๊ณผ O(1)์ ์๊ฐ ๋ณต์ก๋์ ์ฐจ์ด๋ฅผ ๋ถ๋ฌ์ด.
์๋ฅผ ๋ค์ด AI๊ฐ pathfinding์ ํด์ผํ๋ฉด skip ๋ฆฌ์คํธ์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋น๋ ค์์
path๋ฅผ ํฌ๊ฒ 16๋ถํ ์ ํ๋ค๋์ง ํ๋์์ผ๋ก ๋ฏธ๋ฆฌ ๊ฐ ๊ณณ์ ๋ํ ํฐ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋๊ณ ,
๊ทธ ๋ค์์ ์ธ๋ถ์ ์ผ๋ก ๋ค์ด๊ฐ์ ๊ณ์ฐํ๋ฉด, ๋ฌผ๋ฆฌ์์ง์์ ํ๋ broad phase์ ๋น์ทํ ์ญํ ์ ํด์ค๋ค๊ณ ๋ณผ์ ์์.
๊ทธ๋ฅ 1600๊ฐ์ ํ์ผ์ ๊ณ์ฐ ํ๋๊ฒ๋ณด๋ค
๋จผ์ 100๊ฐ ์ฉ ํฐ๋ฉ์ด๋ฆฌ๋ก ๋ฌถ์ด์ 16๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํ๊ณ , ๊ฑฐ๊ธฐ์ 10๊ฐ, 10๊ฐ ๋ฅผ ๊ณ์ฐํ๋ค๊ฑฐ๋,
100๊ฐ๋ฅผ ๊ณ์ฐ ํ๋์์ผ๋ก ํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๊ฐ๋ณต์ก๋๋ 4๋ฐฐ์ ๋ ์ฌ๋ผ๊ฐ๋๋ผ๋ (๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ํ์ ํ๋ค๋๊ฒ์)
๋ง์ดํฌ๋ก ์ต์ ํ ํ์ผ๋ก๋ ๋ถ๋์์๋ค double์ด๋ float์ ๊ณ์ฐ ํ ๋๋ * ์คํผ๋ ์ดํฐ๋ฅผ ์ฐ๋๊ฒ ์ข์.
์๋ฅผ ๋ค์ด pi = 3.14159 ๋ผ๋ ์ซ์๋ฅผ 2๋ก ๋๋ ์ผ ํ๋ค๋ฉด
value = pi / 2.0; ์ด๋ ๊ฒ ํ๋๊ฒ๋ณด๋ค
value = pi * 0.5; ์ด๋ ๊ฒ ํ๋๊ฒ ์คํ ์๊ฐ์ด ๋น ๋ฅด๋ค๊ณ ํจ.
๋ฌผ๋ก ๋ง๋ค์ด์ง๋ ASM ์ฝ๋์ ๋ฐ๋ผ ๋ค๋ฅธ๋ฐ, ์ด์ ๋ธ๋ฆฌ ๋ ๋ฒจ์์ ์๋ ๋ฐฉ์์ด ๋ณ์ ๋ ์ง์คํฐ๋ฅผ ํ๋ย ๋์ฐ๋๊ฑธ๋ก ์๊ณ ์์.
์์ฆ์ ๋ณ๋ก ์ ๊ฒฝ ์์จ๋ ๋๊ธด ํ์ง๋ง, (์ด๋ค ๊ฒฝ์ฐ์๋ /2 ๋ฅผ ํ๋๊ฒ ๋น ๋ฅธ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํ๋;;)
์๋์ชฝ์ด ๋ ๋น ๋ฅด๋ค๊ณ ๋ฐฐ์ ์...ย
๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ํ ๋ณ์๋ค์ ๋นํธ ์ฐ์ฐ์ด ์ข๋ ๋น ๋ฆ.
์๋ฅผ ๋ค์ด 2๋ฅผ ๊ณฑํ๋ค๊ณ ํ ๋
int val = 14;
val = val << 1;
2๋ก ๋๋๋ย ๊ฒฝ์ฐ๋ >>1๋ฅผ ํ๋๊ฒ๋ ์๊ณ ...
3์ด๋ ์ด๋ฐ๊ฑธ ๊ณฑํ ๋๋ ๊ทธ๋ฅ ์ฐ๋๊ฒ ๋์ผ๋ ์ด๋ฐ ๋ฏธ๋ฆฝ์ ํ๋ค์ ๋ฌด์ํด๋ ๋จ;;
๋ cos, sin์ด๋ sqrt ๋ฑ์ ์ํ ํจ์๋ค์ ์ปดํจํฐ์์ ํ ์ผ๋ฌ ๊ธ์๋ฅผ ํตํด ๊ณ์ฐํ๋ ๊ฐ์ธ๋ฐ,
์ด๊ฒ ๋ ๋ถํ๊ฐ ๋ง์ด ๋จน๋ ํจ์๋ค์. ์๋ฐ๊ฒ์ค์ ์์ฃผ ์ฐ๋ ์ซ์๋ ๊ฒฐ๊ณผ๋ค์ ๋ฏธ๋ฆฌ ๊ณ์ฐํด์, ๊ฐ์ผ๋ก ์ ์ฅํด๋๋ ๋ฐฉ๋ฒ๋ ์์.
์์งํ ๋งํด์ 0๋ ~ 360๋์ ๊ฒฝ์ฐ๋ ์ซ์๊ฐ ํฌ์ง๋ง ๋ผ๋์์ผ๋ก 0~ 2pi, 6.28 ์ ๋ ๊น์ง๋ ์์ธ๋ก ๊ฐ์ด ํฌ๊ฒ ์๋๊ปด์ง๋ ๊ฒ์ฒ๋ผ ๋ณด์.
์ด๋ด๋ ๋ฏธ๋ฆฌ ๊ณ์ฐ ํด๋๊ฑธ ์ด๋ค๋์ง ํ๋ ๋ฐฉ๋ฒ์ด ์์. ย
์์งํ ์ด๋ฐ ์ต์ ํ๋ ์ฒ์์ ๋งํ 80%์ ๋ถํ๊ฐ ๋ณ๋ก ์๊ฑธ๋ฆฌ๋ ์ํฉ์์์ ์ต์ ํ์ธ๋ฐ, ์ด๋ฐ๊ฒ๋ณด๋ค๋
๋ณดํ๋ฅ์ด ๊ฑธ๋ฆฌ๋๊ณณ์ ์ต์ ํ ํ๋๊ฒ ๋ง๋ค๊ณ ๋ด.
step 3.ย ์ต์ ํ๋ฅผ ํ์ผ๋ฉด ๋๋ฒ๊น ์ ํด์ผ ํจ.
unit test๋ ์ข์ง๋ง, ์ด๋ด๋๋ ์คํ ๋งคํฑ ํ ์คํธ ๋ฑ๋ฑย
์ฌํผ ์งง์ ์๊ฐ์ ๋ง์ ํ ์คํธ๋ฅผ ํด๋ณด๋๊ฒ ์ข์.
ํ ์คํธ ํ๋ ๋์ค์ ์ด์ํ ๊ฒฐ๊ณผ๋, ์ํ์ง ์๋ ํฌ๋์ฌ๊ฐ ๋ ์ ์์ผ๋;;
๋๋ฒ๊น ํ๋ค๋ณด๋ฉด ํ์์ nbit ์ง๋ฆฌย ๋ฉ๋ชจ๋ฆฌ ์ฐพ๋๊ฒ ์ ์ผ ใ ๊ฐ์๊ฑฐ ๊ฐ์๋ฐ ์ด๊ฑด ์ง์ง ์์ฃผ ์์ฃผ ์ฐพ์๋ด์ผ ํ๋๊ฑฐ ๊ฐ๋ค...
์ฝ๋ ์ค๊ณ ๋ถํฐ ์ ๋๋ก ํด์ ๋ฉ๋ชจ๋ฆฌ๋ฆญ, ํฌ๋์ฌ, ๋ฒ๊ทธ์๋ ๊ฒ์์ ๋ง๋ค์... (์ด๊ฑด ๊ฐ๋ฅํ๊ธฐ๋ ํ๊ฑด์ง ๊ถ๊ธ ํจ...)
๋ฉ๋ชจ๋ฆฌ ๋ฆญ์ ๋์ ํ ๋ชป์ก๊ฒ ์ผ๋ฉด
1. ๋ฉ๋ชจ๋ฆฌ ์ผ๋ก์ผ์ดํฐ๋ฅผ ๋ง๋ ๋ค.
2. ์ค๋งํธ ํฌ์ธํฐ๋ก ๋์ฒดํ๋ค. (์ฐ๊ณ ์์๋ค๋ฉด GG ์ถ์ฒ ๋๋ฆฝ๋๋ค;;)
3. ์ฝ๋๋ฅผ ๋ค ์ง์ฐ๊ณ ์๋ก ์ด๋ค.
4. ๋๋ ค ์น๋ค.
์ ๋ฐฉ๋ฒ์ด ์์. ใ ใ ใ ใ .
ย
์ ๊ธ ํ๋ฒ ์ผ๋๋ฐ 1์๊ฐ ๊ฐ๊น์ด ๊ฑธ๋ฆฌ๋๊ฑธ ๋ด์ ์์ผ๋ก ์ฐ๋ฉด ์๋๊ฒ ๋ค...
๋จ์ธ๋๋ฆฝ๋๋ค
์ข์ ๋ด์ฉ์ด๊ธด ํ๋ฐ, ๋ณธ๋ฌธ์ ๋์จ ์ฌ๋ก๋ค๊น์ง ์ต์ ํํด์ผํ๋ ์ ๋๋ฉด ์ต์ ํ ์์ฒญ ์ํ๊ฑฐ๋ ์๊ฐ์ด ๋ฌ... ๋ณดํต์ ์ข๋ ์ด๋ณด์ ์ธ ์ค์์์ ์ํผ๋ณ๋ชฉ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ณธ๋ฌธ ๋งจ์์ ์๊ฐ๋ "๋ณ๋ชฉ์ฐพ๊ธฐ"๊ฐ ๊ต์ฅํ ์ค์ํ๊ฑฐ ๊ฐ๋ค.
์ข์ ๊ธ์ด๊ตฐ์. ๋ฌผ๋ก ๋ค ์ฝ์์ต๋๋ค
๋ฉ๋ชจ๋ฆฌ ํ์ ์จ์ ์์ฑ๊ณผ ์ ๊ฑฐํ๋ ๋ถ๋ถ์ ๋ช ํํ๊ฒ ํด๋ ์ข์๋ฏ
๊ท์ธ (์ธ๋ฉด์ ๊ฐ์ถํ๋ค๋ ๋ป)
์ธ๋๋ผ์ด์ธ์ ํผ๊ฐ๋๋๋์ฌ?
๋ฅ๊ธ์ธ๋ฐ;;