์ฐ์ ์ ์ผ๋ก
์์ดํ
์ Cellํฌ๊ธฐ๋ฅผ ๊ณฑํ ๊ฑธ bulk. ์ฆ ๋ถํผ๋ผ ์นญํ๋ค
1. ์ธ๋ฒคํ ๋ฆฌ์ ํจ๋์ ์๋ ์์ดํ
๋ค์ ๋ณต์ฌํด ๋ฆฌ์คํธํ ํํ ์ด๊ฑธ iList๋ผ ํ๊ณ ํจ๋์ ์๋ ์์ดํ
๋ค์ ์ ๋ถ ์ง์ด๋ค
2. ํ
๋น ํจ๋์ iList์ผ๋ก๋ถํฐ ๊ฐ์ฅ ๋ถํผ๊ฐ ํฐ ์์ดํ
๊ณผ ๊ฐ์ฅ ๋ถํผ๊ฐ ์์ ์์ดํ
์ ๊ฐ์ ธ์ค๊ณ
์ผ๋จ ๊ฐ์ฅ ํฐ ์์ดํ
์ ํจ๋์ ๋ฃ๋๋ค
ํจ๋์ ๋ฃ์ ๋ ์์์ ์ startSlot์ด๋ผ ํ๋ค
2-1. ์ต์ ํ
x = itemCellsizeXย + startSlotX ๋ฑ๋ฑ
slots[y * gridSizeX + x]์ผ๋ก
๋ฃจํ๋ฌธ์ผ๋ก ์ ๋ถ๋ค ์ฌ๋กฏ์ ํ์ด๋ณด๋ ๊ฒ ๋ณด๋ค
ํ์ํ startSlot๋ค๋ง ์ฐพ์ ๋ฃ๋๋ค
3
์ฃผ์
ํ๋ค ์ฌ๋กฏ์ ์์น + ์์ดํ
์ cellX๊ฐ
ํจ๋ grid๋ณด๋ค ๋์ ๋ ๋์
์์ดํ
์ CellY๊ฐ ์๋์ผ๋ฉด
์์ดํ
์ ๋๋ ค์ ๋ฃ๊ณ ์๋๋ผ๋ฉด
๊ฐ์ฅ ์์ ์์ดํ
์ ๊ฐ์ ธ๋ค ๋ฃ๋๋ค
๊ทธ ์์ ์์ดํ
๋ง์ ๋ค์จ์ ํฐ๊ฒ๋ฐ์ ์์ด ์๋ผ์์ง๋
startSlot์ X์ Y๋ฅผ ๋ฆฌ์
์ํค๊ณ
Y๋ฅผ ์์ดํ
ํฌ๊ธฐ์ ๋ฐ๋ผ Y์ถ์ ์ฆ๊ฐํ๊ณ
X๋ ๋ค์ ์์ ์ผ๋ก ์์
์๊ฐ๋ณด๋ค ์ฝ์ง๋ง ์ฝ๋ ์น๋๋ฐ ์๊ฐ ์กด๋ ๋นจ๋ฆฌ๊ฐ๊ฒ ๊ฐ๋ค
https://codeincomplete.com/articles/bin-packing/
์ด๊ฑฐ๋
๋น์ทํ๊ฑธ ๋ง๋๋๊ฑด๊ฐ?
๋ฐ์ค์ xy์ขํ๊ฐ ๋ฐ๊ฟ ์ ์๋ค๋ ์ ๋นผ๊ณ ๋๊ฐ๋ค