โ 1. ๋ฐฐ์ด์ ์ ์
- ์ผ์ ํ ์ฐจ๋ก๋ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ๋ฒ์ฌ ๋์
- ์ฐจ๋ก(์์)์ ๊ด๋ จ๋ ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
- ์์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ, DDR)์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ฅผ ์์์ ์ผ๋ก ๊ฒฐ์ ํ๋ ํน์ง์ด ์๋ค.
- ๋ฐฐ์ด์ ์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์ ์ฅ๋๋ ์์๊ฐ์ ๋ฌผ๋ฆฌ์ ์์์ ๊ฐ๋ค.
- ์ธ๋ฑ์ค์ ์์๊ฐ( indext, value ) ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์.
(1) ๋ฐฐ์ด์ ์๋ฏธ
- ์ธ๋ฑ์ค๋ก ํํ๋๋ ์์๋ฅผ ๊ฐ๋ ํน์ ๋ฐฐ์ด์ด ์กด์ฌํ๋ฉฐ, ๊ทธ๊ณณ์๋ ์์๋๋ก ์์๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
- ์์๋ค์ด ๋ชจ๋ ๊ฐ์ ์๋ฃํ๊ณผ ๊ฐ์ ํฌ๊ธฐ์ ๊ธฐ์ต ๊ณต๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค.
- ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ์ ์ด์ฉํด์ ์์๊ฐ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํจ
[ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ ]
- ์ปดํจํฐ์ ๋ด๊ตฌ๊ตฌ์กฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ฌด๊ดํ๊ฒ ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ ์ ์ผ๋ก ์ ์๋๋ ์ถ์ํ๋ ๊ฐ์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๊ฐ์ ์๋ฏธํจ.
- ๋ฐฐ์ด์(์ถ์ํ๋) ์ธ๋ฑ์ค๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ปดํ์ผ ๊ณผ์ ์ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ๊ณผ ์ฐ๊ฒฐ์ด ๋จ.
- ์ฆ, ํ๋ก๊ทธ๋จ ์คํ๊ณผ ๋์์ ์ด์์ฒด์ ๊ฐ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ด๊ธฐํํด์ ์ฃผ์๊ฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ํ ๋นํด์ค.
- ์ธ๋ฑ์ค๋ ์ถ์ํ๋ ๊ฐ๋ ์ด๊ณ , ์ฃผ์๊ฐ์ ๊ทธ ์ถ์ํ๋ฅผ ๊ตฌํํ ์ค์ ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์ ์ฃผ์๊ฐ์ธ ๊ฒ์ด๋ค.
- ์ฌ์ค์ ๊ตฌํํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋ํ ์ด์์ฒด์ ๊ฐ ํ ๋นํด์ฃผ๋ ๊ฐ์ด์ง ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ทธ๋ฅ ์ ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์.
โ 2. ๋ฐฐ์ด์ ์ถ์ ์๋ฃํ
(1) ์ถ์์๋ฃํ
- ๊ฐ์ฒด ๋ฐ ๊ด๋ จ๋ ์ฐ์ฐ์ ์ ์๋ก ๊ตฌ์ฑ๋จ.
- ์๋ฃ๊ตฌ์กฐ ๊ตฌํ์ ์ ์ค๊ณ ๋จ๊ณ
- ์๋ฃ์ ์ถ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ํ์ ์ผ๋ก ์ ์ ๋ด๋ฆฐ๊ฒ์ด ์ถ์์๋ฃํ์ด๋ค.
- ์ดํ ์ด ์ถ์์๋ฃํ์ ๊ตฌํํ๋ฉด ์๋ฃ๊ตฌ์กฐ๊ฐ ๋๋๊ฒ์.
(2) ์๋ฃํ
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ ํ ๋น์ ์ํ ๋ณ์ ์ ์ธ
- ์ฆ, ๋ณ์๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ๊ธฐ ์ํด์ ํ์๋๋ ๊ณต๊ฐ์ ์ ์ํ๋๊ฒ์ด ์๋ฃํ์ด๋ผ๊ณ ํจ.
- ์๋ฃ๊ตฌ์กฐ์ ๊ตฌํ ๋จ๊ณ(ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํ ์ ์ธ)์์๋ ์๋ฃํ์ด ์ ์ธ์ด ๋จ.
(3) ADT Array ๊ฐ์ฒด: <i index, e Element> ์๋ค์ ์งํฉ
- Index: ์์๋ฅผ ๋ํ๋ด๋ ์์์ ์ ํ์งํฉ
- Element: ์๋ฃํ์ด ๊ฐ์ ์์์ ์งํฉ
- (1) create: ๋ฐฐ์ด์ ์์ฑํด๋ด๋ ์ฐ์ฐ
- (2) retrieve: ๊ฐ ์ฐพ๊ธฐ
- (3) store: ์ํ๋ ์์น์ ๊ฐ ์ ์ฅ
- ์ด๊ฒ์ด ์ํ์ ์ผ๋ก ๋ง๋ค์ด์ง ์ถ์์๋ฃํ ์ฆ, ์ค๊ณ๊ฐ ๋ ์ ์์.
(4) ์ ๋ฆฌ
- ๊ธฐ๋ณธ์๋ฃํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ ์๋ฃํ์ด๊ณ , ์ถ์์๋ฃํ์ ๋ด๊ฐ ์์๋ก ๋ง๋ค ์ ์๋ ๋๋
- ์ฆ, ๊ฐ์ฒด ๋ํ ์ถ์์๋ฃํ ๋ฒ์ฃผ ์์ ๋ค์ด๊ฐ๋ค๊ณ ๋ณด๋๊ฒ ๋ง๋ ๊ฒ ๊ฐ์.
- ๊ฒฐ๋ก ์ ์๋ฐ์์ ๊ตฌํ ๋ ์๋ฃ๊ตฌ์กฐ๋ ๊ฒฐ๊ตญ ์ถ์์๋ฃํ์ ๊ฐ์ฒด๋ก ๊ตฌํํ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
โ 3. ๋ฐฐ์ด์ฐ์ฐ์ ๊ตฌํ
(1) ๋ฐฐ์ด์ ์์ฑ
void create(int n) { // n = 5
int a[n];
int i;
for(i=0, i<n, i++){
a[i] = 0;
}
}
int a[3]; // ๊ฐ๋ฐ์๊ฐ ํธ์ถํ๋ฉด create() ๊ฐ ํธ์ถ์ด ๋๋ค.
- ํด๋น ๊ตฌํ์ผ๋ก ๋ฐฐ์ด์ ๋ง๋ค๊ฒ ๋๋ฉด, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง๊ณ ๋ด๋ถ์์๋ 3๊ฐ์ ๊ณต๊ฐ์ด ํ ๋น๋จ.
- ํด๋น create() ํจ์๋ฅผ ๋ด๋ถ์ ์ผ๋ก ํธ์ถ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ํ์ง๋ง C ์ธ์ด์์๋ ํจ์ ํธ์ถ์ ์ํ๊ณ ์์.
(2) ๋ฐฐ์ด๊ฐ์ ๊ฒ์(retrieve ์ฐ์ฐ)
#define array_size 5
int retrieve(int *a, int i) {
if(i >= 0 && i < array_size )
return a[i];
else {
printf("Erro\n";
return(-1);
}
}
K = a[2]; // 2๋ฒ์งธ์ ๊ฐ์ ๋ฐํ
- a[2] ๋ฅผ ํ๋ฉด ๋ด๋ถ์ ์ผ๋ก retrieve() ํธ์ถ๋ก 2๋ฒ์งธ์ ๋ฐฐ์ด์ ๊ฐ์ ๋ฐํ ๋ฐ์ ์ ์๋ค. ( ์ปดํ์ผ๋ฌ๊ฐ ํด์ค C๋ ํจ์ ์์ )
(3) ๋ฐฐ์ด๊ฐ์ ์ ์ฅ(store ์ฐ์ฐ)
#define array_size 5
void store(int *a, int i, int e) { // i = 3, e =35
if(i >= 0 && < array_size) {
a[i] = e;
} else {
printf("Error\n");
}
}
a[3] = 3; // ์ ์ฅ ๋ด๋ถ์ ์ผ๋ก ํจ์ ํธ์ถ ( C๋ ์๋ )
- a[3] = 3; store() ํจ์๊ฐ ํธ์ถ์ด ๋๋ฉฐ 3๋ฒ์งธ ์ธ๋ฑ์ค์ ์์๊ฐ์ธ 3์ ๋ฃ์ ์ ์๊ฒ ๋๋ค.
(4) ์ ๋ฆฌ
- ์ถ์์๋ฃํ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํ ํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋ ๋นํธ๋ก ๋ ์ ํํ๋ฅผ ๋๊ณ ์์ผ๋ฉฐ, ๋นํธ๋ง๋ค ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
- ํ๋ก๊ทธ๋๋ฐ์์๋ ๋นํธ ๋จ์๊ฐ ์๋ ๋ฐ์ดํธ ๋จ์๋ก ๊ด๋ฆฌ๊ฐ ๋๋ค.
- ์๋ฃํ์ ๋ง๋ ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง๊ฒ ๋๋ฉด, ํด๋น ์๋ฃํ์ ๋นํธ์ ๋ง๊ฒ ๋ฐฐ์ด ์ธ๋ฑ์ค์ ํ๋ํ๋ ํฌ๊ธฐ๊ฐ ์ ํด์ง๊ฒ ๋๋ค.
- ์ฆ, char(๋ฌธ์) ํ์ ์ 1๋ฐ์ดํธ๋ก 8๋นํธ์ด๋ฉฐ char ํํ๋ก ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง๋ฉด ์ธ๋ฑ์ค๋ง๋ค 1๋ฐ์ดํธ(8๋นํธ)์ ํํ๋ฅผ ๋๊ฒ ๋๋ค.
โ 4. 1์ฐจ์ ๋ฐฐ์ด
(1) 1์ฐจ์ ๋ฐฐ์ด์ ์ ์
- A[i] ๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์ A[0] ์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ธ a ๋ก๋ถํฐ ์์ํ์ฌ, A[0] ๋ถํฐ A[i-1] ๊ฐ๊น์ง i๊ฐ์ ๋ฐฐ์ด A[]๋ฅผ ์ง๋์ ์ ์ฅ๋จ
- ๋ฐ๋ผ์, A[] ์ ๋ฉ๋ชจ๋ฆฌ ์์์ฃผ์๋ฅผ a ๋ผ๊ณ ๊ฐ์ ํ๋ฉด, A[i] ์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ ์ฃผ์๋ [a +i*k] ๊ฐ ๋จ
(2) 1์ฐจ์ ๋ฐฐ์ด์์์ ์ฃผ์ ๊ณ์ฐ
- ์ฝ๊ฒ๋งํด, ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ 1๋ฐ์ดํธ์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๋ ๋ฐฐ์ด์ด ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ฉด A[0]... ๋ชจ๋ ๋ฐฐ์ด ์์๊ฐ์ 1๋ฐ์ดํธ ์ฆ, 8๋นํธ์ ๊ณต๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค.
- ๋ํ ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์๋ ๋นํธ๊ฐ ๋ชจ์ธ ์ ํํ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด์์ฒด์ ๋ ์ด ๋นํธ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ชผ๊ฐ์ ๊ด๋ฆฌ๋ฅผ ํ๋ค.
- ์ฆ, ์ฃผ์๊ฐ์ ๋ฐ์ดํธ ๋จ์๋ก ๊ฐ์ง๊ฒ ๋๋ค๋ ์๋ฏธ์ด๋ค.
- ๋ํ ๋ฐฐ์ด์ ํน์ ์ธ๋ฑ์ค์ ์์๊ฐ์ ์ป์ด๋ด๋ ค๋ฉด A[0] ๋ฐฐ์ด์ ์์์ฃผ์๋ฅผ a , i = ์ธ๋ฑ์ค, k = ๋ฐ์ดํธ ์ ๋ผ๊ณ ๊ฐ์ ์ ํ๊ณ A[3] ์ ์ฅ ์ฃผ์๋ฅผ ๊ตฌํ๋ค๊ณ ๊ฐ์ ํ๋ฉด a + i * k ์ ๊ฐ์ผ๋ก ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ ์ ์๋ค.
- ๊ณ์ฐํ๋ฉด ์ฃผ์ = 0x0001 + 2 * 1 = 0x0003 ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ฒ ๋๋ค. ์ฆ, ์ฃผ์๊ฐ 0x0003 ์ ์ป์ ์ ์๋ค.
โ 5. ๋ฐฐ์ด์ ํ์ฅ
(1) ํ๋ ฌ์ ๋ฐฐ์ด ํํ
- ํ๋ ฌ์ ์ปดํจํฐ์์ ํํํ๊ธฐ์๋ 2์ฐจ์ ๋ฐฐ์ด์ด ๋งค์ฐ ์ ํฉํจ.
(2) ํ๋ ฌ์ 2์ฐจ์ ๋ฐฐ์ด ํํ
(3) ํ ์ฐ์ ๋ฐฐ์ด
- 1์ฐจ์ ๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ ์์ ๋์ ๊ฒ์ด 2์ฐจ์ ๋ฐฐ์ด
- ์ฆ, 2์ฐจ์ ๋ฐฐ์ด์ ์ชผ๊ฐ์ 1์ฐจ์ ๋ฐฐ์ด๋ก์จ ๋ด์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ์ 2์ฐจ์ ๋ฐฐ์ด์ ํํ ํ ์ ์๊ฒ ๋๋ค.
(4) ํ ์ฐ์ ํ ๋น
- ๊ฐ๋ก์ 1์ฐจ์ ๋ฐฐ์ด ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฐ์ ํ ๋นํจ
- ํ์ ์ฐ์ ์ผ๋ก ํ์ฌ, ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ์ ํ๊ฒ ๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง๋ค ์ฝ๊ฐ์ฉ ๋ค๋ฅผ ์ ์์.
(5) ์ด ์ฐ์ ๋ฐฐ์ด
- 1์ฐจ์ ๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ ์ธ์ ๋์ ๊ฒ ๋ํ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ณผ ์ ์์ผ๋ฉฐ, ์ด์ ์ฐ์ ์ผ๋ก ํ๋ ๋ฐฐ์ด์ด๋ค.
- ํด๋น ์ด์ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์์๋๋ก ์ ์ฅ์ด ๋๋ค.
(5) ์ด ์ฐ์ ํ ๋น
- ์ธ๋ก์ 1์ฐจ์ ๋ฐฐ์ด ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฐ์ ํ ๋นํจ
(6) C ์ธ์ด ์์์ 2์ฐจ์ ๋ฐฐ์ด
- C ์ธ์ด์์๋ ํ ์ฐ์ ์์๋ก ์ ์ฅ์ด ๋๋ฉฐ, A[3][5] ์ ์ ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฐฐ์ด์ด ์์ฑ์ด ๋๋ค.
โ 6. ํฌ์ํ๋ ฌ์ ๊ฐ๋ (ํํ)
(1) ํฌ์ํ๋ ฌ
- ์์๊ฐ์ด 0์ธ ์์๊ฐ ๊ทธ๋ ์ง ์์ ์์๋ณด๋ค ์๋์ ์ผ๋ก ๋ง์ ๊ฒฝ์ฐ ์ฆ, ์์๊ฐ 0์ด ๊ณผ๋ฐ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ ํฌ์ํ๋ ฌ์ด๋ผํจ.
- ํ์ฌ 2์ฐจ์ ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ์ 72๊ฐ์ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ 10๊ฐ์ ์ค ์ฌ์ฉ ์์๊ฐ, 62๊ฐ์ 0 ์์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
- ๋ฌธ์ ๋ ์ฌ์ฉํ์ง ์๋ ์์๊ฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถํ์ํ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ์๋ ๋ฌธ์ ๊ฐ ์์
(2) ํฌ์ํ๋ ฌ์ ํจ์จ์ ๋ฐฐ์ดํํ
- 0์ธ ์์๋ ์ ์ฅํ์ง ์๊ณ 0์ด ์๋ ๊ฐ๋ง์ ๋ฐ๋ก ๋ชจ์์ ์ ์ฅํ๋ ๋ฐฉ์
- ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ง๊ณ ํจ์จ์ฑ์ ํฅ์ ์ํฌ ์ ์๋ค.
- ๋ถํ์ํ ๊ฐ์ธ 0์ ๋นผ๊ณ ํ๊ณผ ์ด์ ์ธ๋ฑ์ค๊ฐ๊ณผ ์์๊ฐ์ ๋งค์นญํด์ ๋ง๋๋ ๋ฐฉ์
- ํ์ง๋ง, ์ด๋ฐฉ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋ฅ์ ์ฌ๋ผ๊ฐ์ง๋ง ์ฐ์ฐ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๋ฉฐ ์ฐ์ฐ ์๊ฐ์ด ์ฆ๊ฐํ๊ฒ ๋๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
- ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๋ฉด ์ฐ์ฐ์ ์๊ฐ์ด ์ฆ๊ฐํ๋ค๋ ๋ฌธ์ ๊ฐ ์๊ณ , ๋ฐ๋๋ก ์ฐ์ฐ์ ์๊ฐ์ด ๊ฐ์ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ด ์ค์ด๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ ๋ต์ ์์.
'๐๋ฐฉ์กํต์ ๋ํ๊ต > ๐ข์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] 4๊ฐ - ํ (0) | 2025.09.02 |
---|---|
[์๋ฃ๊ตฌ์กฐ] 3๊ฐ - ์คํ (2) | 2025.08.25 |
[์๋ฃ๊ตฌ์กฐ] 1๊ฐ - ์๋ฃ๊ตฌ์กฐ๋ ๋ฌด์์ธ๊ฐ? (0) | 2025.08.21 |