๋ง์ธํฌ๋ํํธ ์คํ ๊ณ์ฐ๊ธฐ๋?
๋ง์ธํฌ๋ํํธ์์ ์์ดํ ์ '์คํ' ๋จ์๋ก ๋ณด๊ด๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๋ธ๋ก๊ณผ ์์ดํ ์ ์ต๋ 64๊ฐ๊น์ง ์์ด์ง๋ง, ๋๋ฉ์ดยท๋ฌ๊ฑยท์๋ ์ง์ฃผ์ฒ๋ผ 16๊ฐ๊น์ง๋ง ์์ด๋ ๊ฒ๋ ์๊ณ , ๋๊ตฌยท๊ฐ์ทยท๋ฌผ์ฝ์ฒ๋ผ ์์ ์์ด์ง ์๋ ๊ฒ(์คํ ํฌ๊ธฐ 1)๋ ์์ต๋๋ค. ์ด ๊ณ์ฐ๊ธฐ๋ ์์ดํ ์ด๊ฐ์๋ฅผ ์ ๋ ฅํ๋ฉด ์์ฑ๋ ์คํ์ด ๋ช ๊ฐ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๋ฑ๊ฐ๋ก ๋ช ๊ฐ๊ฐ ๋จ๋์ง ์๋ ค ์ค๋๋ค. ์์ ์ ๋ฆฌ, ์ ์ปค ์์ ๊ด๋ฆฌ, ๊ฑฐ๋, ๋๋ ์ ์์ ๊ณํํ ๋ ์์ฃผ ์ ์ฉํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๊ฐ์ง๊ณ ์๋ ์์ดํ ์ด๊ฐ์๋ฅผ ์ ๋ ฅํ ๋ค์, ํด๋น ์์ดํ ์ข ๋ฅ์ ๋ง๋ '์คํ๋น ๊ฐ์' ๊ฐ(64, 16, 1)์ ์ ํํ์ธ์. ๊ทธ๋ฌ๋ฉด ์์ฑ ์คํ ์, ๋จ๋ ๊ฐ์, ์ฌ์ฉํ ์คํ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๊ฒ์ฆ๋ ์ดํฉ์ด ํ์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์กฐ์ฝ๋ 1,000๊ฐ๋ฅผ ์์์ ์ ๋ฆฌํ ๋, ๊ทธ๊ฒ 15์คํ + 40๊ฐ๋ผ๋ ๊ฑธ ๋ฏธ๋ฆฌ ์๋ฉด ํจ์ฌ ์์ํฉ๋๋ค.
๊ณ์ฐ ๊ณต์ ํ์ด
์๋ฆฌ๋ ์ ์ ๋๋์ ๊ณผ ๋๋จธ์ง(๋ชจ๋๋ก) ์ฐ์ฐ์ ๋๋ค. ์คํ ์ \(= \left\lfloor \text{์์ดํ } \div \text{์คํ ํฌ๊ธฐ} \right\rfloor\) ๋ก ์์ฑ๋ ์คํ์ ๊ฐ์๋ฅผ ๊ตฌํฉ๋๋ค. ๋จ๋ ๊ฐ์๋ ๋๋จธ์ง \(= \text{์์ดํ } - (\text{์คํ ์} \times \text{์คํ ํฌ๊ธฐ})\) ์ด๋ฉฐ, ์ด๋ ์์ดํ mod ์คํ ํฌ๊ธฐ ์ ๊ฐ์ต๋๋ค. ๋ค์ ์คํ ์์ ์คํ ํฌ๊ธฐ๋ฅผ ๊ณฑํ๊ณ ๋๋จธ์ง๋ฅผ ๋ํ๋ฉด ํญ์ ์๋ ์ด๊ฐ์๊ฐ ๋์ค๋ฏ๋ก, ๋น ์ง์์ด ๊ณ์ฐ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
$$\begin{gathered} \text{Stacks} = \left\lfloor \frac{\text{Total Items}}{\text{Stack Size}} \right\rfloor \\[1.5em] \text{Remainder} = \text{Total Items} - \text{Stacks} \times \text{Stack Size} \end{gathered}$$
์์๋ก ๋ณด๊ธฐ
์กฐ์ฝ๋ 1,000๊ฐ(์คํ ํฌ๊ธฐ 64)๋ฅผ ์บค๋ค๊ณ ํด ๋ด ์๋ค. \(\lfloor 1000 \div 64 \rfloor = \lfloor 15.625 \rfloor = 15\)๊ฐ์ ์์ฑ ์คํ์ด ๋ฉ๋๋ค. ๋๋จธ์ง \(= 1000 - (15 \times 64) = 1000 - 960 = 40\). ๋ฐ๋ผ์ 15์คํ๊ณผ 40๋ธ๋ก์ด ๋๋ฉฐ, ์ธ๋ฒคํ ๋ฆฌ ์ฌ๋กฏ 15์นธ์ด ๊ฐ๋ ์ฐจ๊ณ ํ ์นธ์ 40๊ฐ๊ฐ ๋ค์ด๊ฐ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ ์์ดํ ์ ์ฌ๋กฏ์ ๋ช ์นธ ์ฐจ์งํ๋์? ์์ฑ ์คํ ํ๋๋น ํ ์นธ์ ์ฐ๊ณ , ๋จ๋ ๊ฐ์๊ฐ ์์ผ๋ฉด ํ ์นธ์ ๋ ์๋๋ค. ์ฆ 15์คํ + 40๊ฐ = 16์นธ์ ๋๋ค.
16๊ฐ๊น์ง๋ง ์์ด๋ ์์ดํ ์ ๋ฌด์์ธ๊ฐ์? ๋๋ฉ์ด, ๋ฌ๊ฑ, ์๋ ์ง์ฃผ, ํ์งํ, ์๋์ด๋ฅ ์์ดํ ๋ฑ ์ผ๋ถ ์์ดํ ์ด ์คํ ํฌ๊ธฐ 16์ ์ฌ์ฉํฉ๋๋ค.
๋ํ ์์๋ 27์คํ์ธ๊ฐ์, 54์คํ์ธ๊ฐ์? ์ผ๋ฐ ์์๋ ์ฌ๋กฏ 27์นธ, ๋ํ ์์๋ 54์นธ์ ๋๋ค. ๋ฐ๋ผ์ ์คํ ํฌ๊ธฐ 64 ๊ธฐ์ค์ผ๋ก ๋ํ ์์์๋ ์ต๋ \(54 \times 64 = 3456\)๊ฐ๋ฅผ ๋ด์ ์ ์์ต๋๋ค.