PS/Data Structure

[๊ฐœ๋…] ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (Data Structure), Array

chaerlo127 2022. 4. 9. 15:52
728x90

ํ˜„์žฌ ํ•™๊ต์—์„œ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ถ€๋ถ„์—์„œ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค. MyArrayList๊นŒ์ง€๋Š” ๊ดœ์ฐฎ์•˜์ง€๋งŒ, LinkedListd(์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ)๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค.

๋”ฐ๋ผ์„œ ์œ ํŠœ๋ธŒ ๊ฐ•์˜๋ฅผ ๋ณ‘ํ–‰ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ฐœ๋…๊ณผ ์ฝ”๋“œ๋ฅผ ๋ธ”๋กœ๊ทธ์— ๋ณต๊ธฐํ•˜๋Š” ์‹์œผ๋กœ ๊ณต๋ถ€๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•œ๋‹ค.

728x90

 

โœจ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ, ์›์†Œ๋“ค์ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ •์˜๋œ ๊ทœ์น™์— ์˜ํ•ด ๋‚˜์—ด๋˜๋ฉฐ ์ž๋ฃŒ์— ์˜ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฃŒ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ‘œํ˜„ํ•œ ๊ฒƒ

 

- ํŠน์ง•

1. ํšจ์œจ์„ฑ

 ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ์˜ ๊ด€๋ฆฌ ๋ฐ ์‚ฌ์šฉ, ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉ

 ๊ฑฐ๋Œ€ํ•œ ๋ฐ์ดํ„ธ๋ฅด ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ

  ex) ์ฑ… ํ•œ ๊ถŒ์€ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ, ์ฑ…์ด ๋ช‡ ๋ฐฑ๊ถŒ์ด ๋˜๋ฉด ๊ทธ๋ƒฅ ๋‘์–ด๋„ ๋˜์ง€๋งŒ ๊ณต๊ฐ„๋„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ  ์‹œ๊ฐ„๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆผ. ๋งŽ์€ ์ฑ…์„ ์ •๋ฆฌํ•˜๋ฉด ๊ณต๊ฐ„๋„ ์ค„์–ด๋“ค ๋ฟ๋”๋Ÿฌ ์ฑ…์„ ์ฐพ๋Š” ์‹œ๊ฐ„๋„ ๋นจ๋ผ์ง. 

2. ์ถ”์ƒํ™”

 ๋ณต์žกํ•œ ์ž๋ฃŒ, ๋ชจ๋“ˆ, ์‹œ์Šคํ…œ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…๋งŒ ๊ฐ„์ถ”๋ ค ๋‚ด๋Š” ๊ฒƒ

 ์–ด๋Š ์‹œ์ ์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ์ดˆ์ ์„ ๋งž์ถ”์–ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”์ง€๋งŒ

3. ์žฌ์‚ฌ์šฉ์„ฑ

 ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ”์šฉ์„ฑ  ์žˆ๊ฒŒ ์„ค๊ณ„, ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋„๋ก ํ•˜์ง€ ์•Š์Œ.

 

- ๋ถ„๋ฅ˜

1. ๋‹จ์ˆœ๊ตฌ์กฐ

 ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด(์˜ˆ์™ธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ)

2. ์„ ํ˜•๊ตฌ์กฐ

 ๋ฆฌ์ŠคํŠธ, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ๋ฑ

3. ๋น„์„ ํ˜•๊ตฌ์กฐ

 ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„

4. ํŒŒ์ผ๊ตฌ์กฐ

 ์ˆœ์ฐจํŒŒ์ผ, ์ƒ‰์ธํŒŒ์ผ, ์ง์ ‘ํŒŒ์ผ

 

[์ถœ์ฒ˜] : https://andrew0409.tistory.com/148


โœจ Array

๋ฒˆํ˜ธ์™€ ๋ฒˆํ˜ธ์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ

๋งŽ์€ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋Ÿญ์ณ๋“ค์ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋ถ€ํ’ˆ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ

์—ฌ๋Ÿฌ ๋ฐ์ดํ…จ๋ฅผ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ๊ทธ๋ฃนํ•‘ํ•ด์„œ ์ง‘ํ•ฉ์œผ๋กœ ๊ด€๋ฆฌํ•จ. -> ๊ด€๋ฆฌ: ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ

์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ๊ฐ’์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ณง ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ’์ด ์ €์žฅ

fruit = ๋ฐฐ์—ด์ƒ์„ฑ;
fruit[0] = '์‚ฌ๊ณผ';
fruit[1] = '๋ฐฐ';
fruit[2] = '๋ฐ”๋‚˜๋‚˜';

 

value: '์‚ฌ๊ณผ', '๋ฐฐ', '๋ฐ”๋‚˜๋‚˜' <๊ฐ’>

โญ index0, 1, 2 <๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ, ๋ฐ์ดํ„ฐ ์‹๋ณ„>

element: fruit[0] = '์‚ฌ๊ณผ' <value + index>

 

 

 

โœจ Array ์ƒ์„ฑ (CREATE)

//์ •์ˆ˜ํ˜•์˜ element๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด
int[] numebrs1 = new int[4];
numebrs1[0] = 10;
numebrs1[1] = 20;
numebrs1[2] = 30;

//๋ฌธ์ž์—ด์˜ element๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด
String[] strings = new String[4];

int[] numebrs3 = {10, 20, 30};
int[] numebrs3 = new int[]{10, 20, 30};

 

 

โœจ Array GET

System.out.println(numbers1[0]); // 10
System.out.println(numbers1[3]); //0 default int 0

 

 

โœจ Array SIZE

System.out.println(numbers1.length);

 

โœจ Array Iteration (๋ฐ˜๋ณต)

์—ฐ๊ด€๋œ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

// ์ˆ˜ ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ
int i = 0;
while(numbers1.length>i){
	System.out.println(numbers1[i]);
    i++;
}

//-----------------------------------------
// ๋”์šฑ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์—… ๊ฐ€๋Šฅ
// while์„ ๊ฐœ์„ ํ•œ ์ฝ”๋“œ
for(i = 0; i<numbers1.length;i++){
	System.out.println(numbers1[i]);
}

 

 

โœจ Array ์žฅ/๋‹จ์ 

  • ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ->์ข‹์€ ๋ถ€ํ””์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด (์ž‘๊ณ  ๊ฐ€๋ณ๊ณ , ๋‹จ์ˆœํ•˜๋‹ค)
  • ๊ธฐ๋Šฅ์ด ์—†๋‹ค. 

 ํฌ๊ธฐ๊ฐ€ ํ™•์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์žฅ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋‹จ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์žฅ์ ์œผ๋กœ์„œ ๋ณธ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ข‹์€ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ถ€ํ’ˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ๋‹จ์ˆœํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

728x90