๋ฐฐ์ด.
์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด(array) ์ ๊ด๋ จ๋ ๋ค์์ ๊ฐ์ ์ ์ฅํ ๋ ์ฌ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 1๋ ๊ฐ ๋งค์ผ ๋ง์ ์ปคํผ์ ์์ ์ถ์ ํ๊ณ ์ถ๋ค๊ณ ํฉ์๋ค.
- ์ด๋ ๊ฐ๋ณ ๋ณ์(AmountDay1, AmountDay2, AmountDay3 ๋ฑ)๋ฅผ 365๊ฐ ๋ง๋ค์ด์ ์ ์ฅํ ์ ์๊ฒ ์ง๋ง, ์ด ๋ฐฉ์์ ์
๋ ฅํ๊ธฐ๋ ๊ท์ฐฎ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ๊ตฌ์กฐ๋ก๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- AmountDay2๋ ๋จ์ง ํ
์คํธ ๊ผฌ๋ฆฌํ์ผ ๋ฟ์ด๋ฉฐ, AmountDay2 ์ ๋ ์ ์ ๋ณด๋ฅผ AmountDay1์ด ์ ์ฅํ๊ณ AmountDay2 ๋ค์ ๋ ์ ์ ๋ณด๋ฅผ AmountDay3๊ฐ ์ ์ฅํ๋ค๋ ์ฌ์ค์ ํ๋ก๊ทธ๋จ์ด ์ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ์๋ง ์ด ์ ๋ณด๋ฅผ ์๊ณ ์์ต๋๋ค.
- AmountDay2๋ ๋จ์ง ํ
์คํธ ๊ผฌ๋ฆฌํ์ผ ๋ฟ์ด๋ฉฐ, AmountDay2 ์ ๋ ์ ์ ๋ณด๋ฅผ AmountDay1์ด ์ ์ฅํ๊ณ AmountDay2 ๋ค์ ๋ ์ ์ ๋ณด๋ฅผ AmountDay3๊ฐ ์ ์ฅํ๋ค๋ ์ฌ์ค์ ํ๋ก๊ทธ๋จ์ด ์ ์ ์์ต๋๋ค.
๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ์ ์ฐ์์ ์ผ๋ก ์ธ๋ฐ์ค(Index) ๊ฐ ๋ถ์ฌ๋ ์์์ ์ ์ฅํ๋ ๊ฐ๋จํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค.
์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ฐฐ์ด์ ์ฌ์ค ๊ฐ๋ณ ๋ณ์๋ค์ ํ ์ค๋ก ์ธ์๋ ๊ฒ์ด๋ฉฐ, ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๊ฐ์ ํฌ๊ธฐ์ ์์๋ค์ด ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋ ๋ธ๋ก์ ๋๋ค.
- ๊ฐ๋ณ ๋ณ์์ฒ๋ผ ๋ฐฐ์ด๋ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ด๋ฆฌ๋ฅผ ์ฐจ์งํ๋ฉฐ ์์์ ๋ค๋ฅธ ์ ๋ณด์ ์ธ์ ํ ์ ์์ต๋๋ค.
- ๋ฐฐ์ด์ ๊ฐ ์์์๋ ์ซ์, ๋ฌธ์, ํฌ์ธํฐ ๋๋ ๋ค๋ฅธ(ํฌ๊ธฐ๊ฐ ์ ํด์ ธ ์๋) ์๋ฃ ๊ตฌ์กฐ์ ๊ฐ์ ํ์ ์ ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค.
์ผ์์ํ์์๋ ๋ฐฐ์ด์ ๋งค์ฐ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ๊ณ ๋ฑํ๊ต ๋ณต๋์ ๋์ด์ ์ฌ๋ฌผํจ์ ํ์๋ค์ ์ฑ
๊ณผ ์ธํฌ๋ฅผ ์ ์ฅํ๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐฐ์ด์
๋๋ค.
- ์ฐ๋ฆฌ๋ ๊ฐ๋ณ ์ฌ๋ฌผํจ์ ์ด์ด ๋ด๋ถ ๊ณต๊ฐ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐฐ์ด์ ๊ตฌ์กฐ๋ ์์น(๋๋ ์ธ๋ฑ์ค)๋ฅผ ์ง์ ํ์ฌ ๋ฐฐ์ด ๋ด ๊ฐ๋ณ ๊ฐ, ์ฆ ์์(element) ์ ์ ๊ทผํ ์ ์๊ฒ ํด์ค๋๋ค.
- ๋ฐฐ์ด ๋ด ์์๋ค์ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ก ์ธ์ ํด ์์ผ๋ฏ๋ก, ์ฒซ ๋ฒ์งธ ์์๋ก๋ถํฐ ์คํ์
(offset)์ ๊ณ์ฐํด์ ํด๋นํ๋ ์์น์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๋ ๋ฐฉ์์ผ๋ก ๊ฐ ์์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ด๋ ์ ๊ทผํ๋ ค๋ ์์์ ์์น์ ๊ด๊ณ์์ด ๋ง์
ํ ๋ฒ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋ง ํ์ํ๋ค๋ ๋ป์
๋๋ค.
- ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ฐ๋ฆฌ์ ์ผ์ผ ์ปคํผ ์ญ์ทจ๋์ ์ถ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์์๊ฐ ์๋ ํญ๋ชฉ์ ์ ์ฅํ ๋ ํนํ ํธ๋ฆฌํฉ๋๋ค.
- ์ด๋ ์ ๊ทผํ๋ ค๋ ์์์ ์์น์ ๊ด๊ณ์์ด ๋ง์
ํ ๋ฒ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋ง ํ์ํ๋ค๋ ๋ป์
๋๋ค.
ํ์์ ์ผ๋ก ๋ฐฐ์ด A์์ ์ธ๋ฑ์ค i์ ์๋ ๊ฐ์ A[i]๋ก ์ฐธ์กฐํฉ๋๋ค.
- ์ฌ๋ฌผํจ ์์ ์์ ์ธ๋ฑ์ค๋ ์ฌ๋ฌผํจ ์์ ํ์๋ ์ซ์์ ํด๋นํฉ๋๋ค.
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ 0๋ถํฐ ์์ํ๋(zero based) ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ด ๋ง์ ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ์ธ๋ฑ์ค 0, ๋ ๋ฒ์งธ ๊ฐ์ ์ธ๋ฑ์ค 1, โฆ์ ์์นํ๋ค๋ ๋ป์ ๋๋ค.
์๋ ๊ทธ๋ฆผ์ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ์ ๋ฐฐ์ด ๋ชจ์ต์ ๋ณด์ฌ์ค๋๋ค.
- ์ฌ๊ธฐ์ ํฐ ์นธ์ด ๋ฐฐ์ด ์์์ ํด๋นํฉ๋๋ค.
0์ ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ฑํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ๋ฐฐ์ด์ ์์์ ๋ถํฐ ์คํ์ ์ ์ฌ์ฉํด ์์น๋ฅผ ๊ณ์ฐํ ๋ ํธ๋ฆฌํฉ๋๋ค.
i๋ฒ์งธ ์์์ ์์น๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐํ ์ ์์ต๋๋ค.
์์น(์ธ๋ฑ์ค i์ ์์) = ์์น(๋ฐฐ์ด ์์) + ๊ฐ ์์์ ํฌ๊ธฐ x i
์ธ๋ฑ์ค 0์ ์์น๋ ๋ฐฐ์ด ์์์ ๊ณผ ๊ฐ์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ ๊ทธ๋ฆผ์์ ๋ฐฐ์ด A์ ๋ค์ฏ ๋ฒ์งธ ์์๋ A[4]์ด๋ฉฐ ๊ทธ๋ฆผ 1-4๋ฅผ ์ฐพ์๋ณด๋ฉด ๊ทธ ์์น์๋ 9๋ผ๋ ๊ฐ์ด ๋ค์ด ์์ต๋๋ค.
๋ ธํธ
์ธ๋ฑ์ค๋ฅผ 1๋ถํฐ ์์ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ฉฐ, ์ผ๋ถ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ด ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.
1์ ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ฑํ๋ ๊ฒฝ์ฐ ์์์ ์ฃผ์๋ฅผ ๊ณ์ฐํ๋ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.์์น(์ธ๋ฑ์ค i์ ์์) = ์์น(๋ฐฐ์ด ์์) + ๊ฐ ์์์ ํฌ๊ธฐ x (i-1)
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๋ฐฐ์ด ์ด๋ฆ๊ณผ ์ธ๋ฑ์ค๋ฅผ ์กฐํฉํด ๊ฐ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ค์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ด ์ธ๋ฑ์ค๊ฐ 5์ธ ์์์ ๊ฐ์ 16์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
A[5] = 16
์ปคํผ ์ถ์ ์์ ์์ ํ๋ฃจ ๋์ ์ญ์ทจํ ์ปคํผ ์ปต ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด Amount๋ผ๋ ๋ฐฐ์ด์ ์ ์ํ๊ณ , ํด๋น ์๋์ Amount[0] ๋ถํฐ Amount[364]๊น์ง ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋จ ํ๋์ ์ด๋ฆ์ผ๋ก 365๊ฐ ๋ค๋ฅธ ๊ฐ์ ์์๋๋ก ์ ๊ทผ ํ ์ ์๋๋ฐ, ์ด๋ฆ์ ๋น์ทํ์ง๋ง ์๋ก ๋ ๋ฆฝ์ ์ธ ๋ณ์๋ค์ ์ฐ์์ ์ผ๋ก ์์น์์ผฐ๋ ๊ฒ์ ์ํ์ ์ธ ์คํ์ ์ผ๋ก ์ ํํ ๊ฒ์ ๋๋ค.
์ด ๊ฐ๋ ์ ์ฅ์ ์ ์ดํดํ๋ ค๋ฉด ํ๊ต ์ฌ๋ฌผํจ์ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ๋ณ ์ฌ๋ฌผํจ์ โ์ ๋ ๋ฏธ์ ์ฌ๋ฌผํจโ์ด๋ โK๋ก ์์ํ๋ ์ธ ๋ฒ์งธ ํ์์ ์ฌ๋ฌผํจโ์ฒ๋ผ ์ด๋ฆ ๋ถ์ด๋ฉด ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์ด๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ทธ๋ฅ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฌ๋ฆฌ ๋ชจ๋ ์ฌ๋ฌผํจ์ ๋ถ์ ๊ผฌ๋ฆฌํ๋ฅผ ์ผ์ผ์ด ์ฐพ์๋ด์ผ ํฉ๋๋ค.
ํ์ง๋ง ๋ฐฐ์ด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ์๋ค์ ์คํ์ ์ ์ฌ์ฉํด ์ฌ๋ฌผํจ์ด ์ด๋ ์๋์ง ๊ฒฐ์ ํ๊ณ ์ง์ ํด๋น ์ฌ๋ฌผํจ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ข ์ข ๋ฐฐ์ด์ ์ ์ฒด ์๋ฃ ๊ตฌ์กฐ๋ก ์๊ฐํํ๊ณ ๋ ผ์ํ์ง๋ง, ๊ฐ ์์๊ฐ ๊ฐ๋ณ ๋ณ์์ฒ๋ผ ์๋ํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๋ฐฐ์ด์ ์ ์ฒด์ ์ผ๋ก ๋ฐ๊พธ๋ ค๋ฉด ๋ชจ๋ ์์๋ฅผ ํ๋ํ๋ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์์๋ฅผ ํ ์นธ ์์ผ๋ก ์ด๋์ํค๊ณ ์ถ์ผ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํด์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์์๋ฅผ ํ ์นธ ์์ผ๋ก ์ด๋์ํค๊ณ ์ถ์ผ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํด์ผ ํฉ๋๋ค.
๋ฐฐ์ด์ ์ฑ ์ฅ์ ๊ฝํ ์๋ ์ฑ ๋ค๊ณผ ๋ค๋ฆ ๋๋ค.
- โ์ปคํผ ์ ํธ๊ฐ๋ฅผ ์ํ ์ต๊ณ ์ ๊ณต์ ๋ฌด์ญ ์ปคํผ ๊ฐ์ด๋โ๋ฅผ ๋ผ์๋ฃ๊ธฐ ์ํด ์ฑ ์ปฌ๋ ์ ์ ์ฒด๋ฅผ ๋ฐ์ด๋ผ ์ ์์ง๋ง, ๋ฐฐ์ด์ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ฐฐ์ด์ ์คํ๋ ค ์ผ๋ ฌ๋ก ๋์ด์ ๊ฐ๊ฒ์ ๊ฐ์ต๋๋ค.
- ์์ ๊ณผ ๋ฏธ์ฉ์ค ์ฌ์ด์ ์ปคํผ์์ ๋ผ์ด๋ฃ์ ์ ์์ต๋๋ค.
- ์ปคํผ์ ๊ณต๊ฐ์ ํ๋ณดํ๋ ค๋ฉด ์ธ์ ํ ๊ฑด๋ฌผ๋ก ์์ (๋๋ ๋ฏธ์ฉ์ค)์ ์ด์ ํด์ ๊ธฐ์กด ๊ณต๊ฐ์ ๋น์ฐ๋ ๋ฐฉ์์ผ๋ก ๊ฐ๊ฒ๋ฅผ ํ๋์ฉ ์ฎ๊ฒจ์ผ๋ง ํฉ๋๋ค.
์ค์ ๋ก ๋ฐฐ์ด์์ ๋จ์ํ ๋ ๊ฐ์ ๊ตํํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ ๊ฐ๋ค์ ๋ฏธ๋ฌํ๊ฒ ์กฐ์ ํด์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ด๋ค ์ธ๋ฑ์ค i์ j์ ์๋ ๋ ๊ฐ์ ๊ตํํ๋ ค๋ฉด ๋จผ์ ๋ ์ค ํ๋๋ฅผ ์์ ๋ณ์์ ํ ๋นํด์ผ ํฉ๋๋ค.
Temp = A[i] A[i] = A[j] A[j] = Temp
- ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๋ค ํ ์์ ์ ๊ฐ์ ๋ฎ์ด์ฐ๊ฒ ๋์ด ๋ ์์๊ฐ ๋์ผํ ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ปคํผ์๊ณผ ์์ ์ ์์น๋ฅผ ๋ฐ๊พธ๋ ค๊ณ ํ๋ค๋ฉด, ๋จผ์ ์์ ์ ๊ฐ๊ตฌ์ ๋ฌผํ ๋ฑ์ ๋น์ด ์๋ ์ธ ๋ฒ์งธ ์์ ์์น๋ก ์ปคํผ์์ ๊ฒ๋ค์ ๋ฃ์ ์ ์๋ ๊ณต๊ฐ์ ํ๋ณดํด์ผ ํฉ๋๋ค.
- ๊ทธ ํ ์ปคํผ์์ ์ฎ๊ธธ ์ ์๊ณ , ์์ ์ ๊ฐ๊ตฌ์ ๋ฌผํ ๋ฑ์ ์ธ ๋ฒ์งธ ์์ ์์น์์ ์ปคํผ์์ ์ด์ ์์น๋ก ์ฎ๊ธธ ์ ์์ต๋๋ค.