- ์ฐ์ฒดํต์ ๊ฐ์๋ 2 ~ 4๊ฐ ์ฌ์ด์์ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ์ฐ์ฒดํต์ ์์น๋ ๋ง์์ ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์ ์์นํ๋๋ก ํ๋ค.
- ์ฐ์ฒดํต์ width๋ 10% ~ 25% ์ฌ์ด์์ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ์ ์ฒด ๋ง์์์ ์ฐ์ฒดํต์ด ๋ค์ด๊ฐ ๋ง์์ ์ธ๋ฑ์ค๋ฅผ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ์ขํ 0 ~ 25% / 0 ~ 50%
์ฐ์ฒดํต 10% ~ 25%
๋ง์ ๋์ด 50% ~ (100% -์ขํ)
- ๋ง์์ ๊ฐ์๋ ์ฐ์ฒดํต์ ๊ฐ์์ 2๋ฐฐ์์ 3๋ฐฐ ์ฌ์ด์์ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ํ๋์ ๋ง์์ ๋๋ฌด ๋ชฐ๋ฆฌ์ง ์๋๋ก, ๋ง์์ ๊ฐ์๋ฅผ 4๋ก ๋๋ ๋๋จธ์ง ๊ฐ์์ ๋ง์์ 1, 2, 3, 4 grid ์ค์ ๋๋ค์ผ๋ก ๋ค์ด๊ฐ๋ค. (ex. ๋ง์์ ๊ฐ์๊ฐ 10๊ฐ์ธ ๊ฒฝ์ฐ 1~8๊ฐ๋ ๋์๊ฐ๋ฉฐ 4๊ฐ์ ํ๋ฉด์ ๋ค์ด๊ฐ๊ณ ๋๋จธ์ง 2๊ฐ๋ ๋ค์ด๊ฐ ์์น๊ฐ ๋๋ค์ผ๋ก ์ ํด์ง๋ค.)
- ๋ง์์ left, top ์ขํ๋ 0 ~ ๋ถ๋ชจ ๋ฐ์ค์ ๊ฐ๋ก, ์ธ๋ก 1/2 ์ค์์ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ๋ง์์ ๊ฐ๋ก, ์ธ๋ก๋ ๋ถ๋ชจ ๋ฐ์ค์ ๊ฐ๋ก, ์ธ๋ก์ 1/2 ~ ๋ถ๋ชจ๋ฐ์ค์ ๊ฐ๋ก, ์ธ๋ก - left, top ์ขํ ์ค์์ ๋๋ค์ผ๋ก ์ ํ๋ค.
- ์ฐ์ฒดํต์ด ๋ค์ด๊ฐ๊ธฐ๋ก ์ ํด์ง ๋ง์์ ์์ ๋ง์์ left, top ์ขํ๋ ์ฐ์ฒดํต์ ์ต๋ ํฌ๊ธฐ ~ ๋ถ๋ชจ ๋ง์์ ๊ฐ๋ก, ์ธ๋ก 1/2 ์ค์์ ๋๋ค์ผ๋ก ์ ํ๋ค.(์ฐ์ฒดํต์ด ์ผ์ชฝ ์๋จ์ ์์ผ๋ฏ๋ก)
โโโ ๐ static
โ โโโ ๐ resources
โ โ โโโ ๐ css
โ โ โ โโโ reset.css
โ โ โ โโโ style.css
โ โโโ ๐ src
โ โโโ ๐ controllers
โ โ โโโ postboxButton.js
โ โโโ ๐ models
โ โ โโโ ๐ data
โ โ โ โโโ town.js (json)
โ โ โ โโโ postbox.js (json)
โ โ โโโ ๐ dataManager
โ โ โ โโโ town.js
โ โ โ โโโ postbox.js
โ โโโ ๐ utils
โ โ โโโ util.js
โ โโโ ๐ views
โ โ โโโ ๐ components
โ โ โ โโโ town.js
โ โ โ โโโ postbox.js
โ โ โโโ map.js
โ โ โโโ postboxInfo.js
โ โโโ main.js
โโโโ index.html
- DFS ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์์ ๋ ธ๋๋ก ๋ค์ด๊ฐ ํ์ํ๋ ๋ฐฉ์์ ์ฌ๊ท๋ก ๊ตฌํํ๋ค.
- parentElement์ className์ ์ธ์๋ก ๋ฐ์ ํ์ ์์์ ์ ์ง์ ํ ์ ์๋ค.
- getElementByClassName๊ณผ ํ์ ๋ฐฉ์์ ๊ฐ์ง๋ง ์ค์งํ์ง ์๊ณ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ํ๋ค.
- ์ ์ผ ์์ ๋ ธ๋๋ก ๋์ฐฉํ์ ์ ๋น ๋ฐฐ์ด์ ๋ฐํํ์ฌ ํด๋น ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ๊ทธ ๋ฐฐ์ด์ push ํ๊ณ , ๋ฐํํ์ฌ ์ ์ฅํ๊ณ push ํ๊ณ ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ง์ง๋ง ์ฌ๊ท๋ฅผ ํ์ถํ๋ฉด ์ฐพ์ ์์๋ค์ด ๋ชจ๋ ๋ฐํ๋๋ค.
- ์๊ฐ๋ณต์ก๋๊ฐ O(n log n)์ด๊ณ , ๋น๊ต์ ๊ตฌํ์ด ๋ณต์กํ์ง ์์ ๋ณํฉ์ ๋ ฌ๋ก ๊ตฌํ