๐ ์๋ฃ๊ตฌ์กฐ
ํด์ฌ ํ
์ด๋ธ ํด์ฌ ํ
์ด๋ธ์ ํด์ ๊ฐ์ index๋ก ์ผ์ key์ value๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋น ๋ฅธ ๊ฒ์์ด ํ์ํ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ธ๋ฐ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ํด์ฌ ํ
์ด๋ธ์ ๊ฐ Key ๊ฐ์ ํด์ฌํจ์๋ฅผ ์ ์ฉํด ๋ฐฐ์ด์ ๊ณ ์ ํ index๋ฅผ ์์ฑํ๊ณ , ์ด index๋ฅผ ํ์ฉํด ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ๊ฒ์ํ๋ค. ์ด๋ ์ค์ ๊ฐ์ด ์ ์ฅ๋๋ ์ฅ์๋ฅผ ๋ฒํท์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์์ ์ ๊ณตํ๋ Hashtable ํด๋์ค๋ฅผ ์ดํด๋ณด๋ฉด ํด๋น ์๋ฃ๊ตฌ์กฐ์ ๊ฐ์ ์ ์ฅํ ๋ ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ๋์ํ๋ค. key๋ฅผ ์๋ฐ์์ ์ ๊ณตํ๋ ํด์ฌํจ์์ธ hashCode()๋ฅผ ์ด์ฉํ์ฌ ํด์ฌ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ๊ทธ ๋ณ๊ฒฝํ ๊ฐ์ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ๋ ๊ณ์ฐํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์๊ฐ๋ณต์ก๋ ์ถ๊ฐ, ์ญ์ : O(1) ๊ฒ์ : O(1) ํ..
๐ ์๋ฃ๊ตฌ์กฐ
์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋จ์ด์ง ๊ณต๊ฐ์ ์๋ ๋ฐ์ดํฐ๋ค์ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐ๊ฒฐ๋์ด ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด์ ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ์๋ฃ๊ตฌ์กฐ์ฌ์ ๋ฐฐ์ด๊ณผ๋ ๋ค๋ฅด๋ค. ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋
ธ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, ์ฌ๊ธฐ์ ๋
ธ๋๋ ๋ฐ์ดํฐ์ ํฌ์ธํฐ๋ฅผ ๋ด๊ณ ์๋ ๊ณต๊ฐ ๋จ์์ด๋ค. ํฌ์ธํฐ๋ ๋ค์ ๋
ธ๋์ ์ฃผ์ ๊ฐ์ ์ ์ฅํ๋ ๊ณต๊ฐ์ด๋ค. ์ฅ์ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ์ง ์์๋ ๋จ ๋จ์ ์ฐ๊ฒฐ์ ์ํ ๋ณ๋ ๊ณต๊ฐ์ด ํ์ํ๋ฏ๋ก, ์ ์ฅ๊ณต๊ฐ ํจ์จ์ด ์ข์ง ์์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ฐพ๋ ์๊ฐ์ด ํ์ํ๋ฏ๋ก ์ ๊ทผ ์๋๊ฐ ๋๋ฆผ ์ค๊ฐ ๋ฐ์ดํฐ ์ญ์ ์, ์ ๋ค ๋
ธ๋์ ์ฐ๊ฒฐ์ ์ฌ๊ตฌ์ฑํด์ผ ํ๋ ๋ถ๊ฐ์ ์ธ ์์
์ด ํ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ง์ ๊ตฌํํด๋ณด๋ฉฐ ์ฅ,๋จ์ ์ ์ดํด๋ณด๊ณ ์๊ฐ ๋ณต์ก๋์ ๋ํด์๋ ์์๋ณด์ ๊ตฌํ IList ์ธํฐํ์ด์ค..
๐ ์๋ฃ๊ตฌ์กฐ
์คํ(Stack) ์คํ์ ๋ฐ์ดํฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์์ ๊ธ์์ ์ค๋ช
ํ ํ๋ FIFO ๋ฐฉ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์คํ์ LIFO(Last-In, First-Out) ๋ฐฉ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฆ, ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ด๋ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ํ ์ ์๋ค. ์ด ์๋ฃ๊ตฌ์กฐ๊ฐ ํ์ฉ๋๋ ๋ํ์ ์ธ ์์๋ก๋ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ Java์ JVM์ด๋ค. JVM์๋ ๋ฉ์๋ ํธ์ถ ์, ์คํ ๋ฉ๋ชจ๋ฆฌ์ ๋ฉ์๋๊ฐ ๋ด๊ธฐ๋๋ฐ ์ด ๋ ์คํ ์๋ฃ๊ตฌ์กฐ๊ฐ ํ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด A๋ฉ์๋ ์์์ B๋ฉ์๋๋ฅผ ํธ์ถํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๊ทธ๋ผ A๋ฉ์๋๊ฐ ์คํ ์์ญ์ ํ ๋น๋๊ณ , ๊ทธ ๋ค์ B๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ถ๋ถ์์ B๋ฉ์๋๊ฐ ํ ๋น๋ ๊ฒ์ด๋ค. ๋น์ฐํ๊ฒ๋ ๋ฉ์๋์ ํ๋ฆ์ B๋ฉ์๋๊ฐ ๋จผ์ ๋์์ด ๋๋ ํ
๋ B..
๐ ์๋ฃ๊ตฌ์กฐ
ํ(Queue) ํ๋ ๋จผ์ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๊บผ๋ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. FIFO(First-In, First-Out) ๋ฐฉ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ ํ ์ ์๋ค. ์ด๋ ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์๋น์ ์ค์ ์๋ฉด ๋จผ์ ์ค์ ์ ์ฌ๋์ด ๋จผ์ ์
์ฅ์ ํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์์ ๊ทธ๋ฆผ์ ์ฃผ์ ์ฉ์ด๋ค์ด ์๋๋ฐ, ์ค๋ช
ํ์๋ฉด ์๋์ ๊ฐ๋ค. Enqueue : ํ์ ๊ฐ์ ๋ฃ๋ ๊ธฐ๋ฅ Dequeue : ํ์์ ๊ฐ์ ๊บผ๋ด๋ ๊ธฐ๋ฅ head : ํ์ ๋งจ ์ ๋ถ๋ถ, front ๋ผ๊ณ ๋ ํจ tail : ํ์ ๋งจ ๋ท ๋ถ๋ถ, rear ๋ผ๊ณ ๋ ํจ ํ์ ๊ฐ์ด ์ถ๊ฐ๋๋ค๋ฉด, tail ์์น์ ๊ฐ์ด Enqueue ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ง์ด๋ค๋ฉด head์ ๊ฐ์ด Dequeue ๋ ๊ฒ์ด๋ค. Enqueue ์์ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋ ์ ์
์ ์ถ ๊ตฌ์กฐ์ด๊ณ ,..
๐ ์๋ฃ๊ตฌ์กฐ
๋ฐฐ์ด(Array) ๋ฐฐ์ด์ ๊ฐ์ ๋์ดํ๊ณ , ๊ฐ ๊ฐ์ ์ธ๋ฑ์ค์ ๋์ํ๋๋ก ๊ตฌ์ฑํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด์ด ํ์ํ ์ด์ ๊ฐ์ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ ๊ฐ์ ์ข
์ ์ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ์ฅ ์ฅ์ ๊ฐ์ ๋น ๋ฅธ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. (์๊ฐ๋ณต์ก๋ O(1)) ๋จ์ ์ค๊ฐ์ ๊ฐ์ ์ถ๊ฐ, ์ญ์ ํ๊ธฐ๊ฐ ์ฝ์ง ์๋ค. ๋ฏธ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ ๋นํด์ผํ๋ค. ๋๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฐ๋ณํ ์ ์๋ค. ์์ ๋ด์ฉ๋ค์ ์๋ฐ๋ก ์๋ฅผ ๋ค์ด์ ์์๋ณด๋ ค๊ณ ํ๋ค. ์ฐ์ ๋จผ์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ฃผ๋๋ฐ, ์์ ๋จ์ ์ ์ค๋ช
ํ๋ฏ์ด ๋ฐฐ์ด์ ์ ์ธํ ๋ ๋ฏธ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ ๋นํด์ผํ๋ค. ๊ทธ๋์ ์๋์ ๊ฐ์ด ํฌ๊ธฐ๊ฐ 7์ธ ๋ฐฐ์ด์ ํ๋ ๋ง๋ค์ด์ฃผ์. int[] arr = new int[7]; ์์ ๊ทธ๋ฆผ์ฒ๋ผ ํฌ๊ธฐ๊ฐ 7์ธ ๋ฐฐ์ด์ด ์์ฑ๋๋ค. intํ์ ๋ฐฐ์ด์ ์์ฑํ๊ธฐ ๋๋ฌธ์ int ์..