++2020.06.01
์๋ฃ๊ตฌ์กฐ์ ํด๋นํ๋ ํํธ์ด์ง๋ง, ์๋ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ์ ์งํํ๋ค.
๊ทธ๋ฌ๋ค๋ณด๋ Collection์์ ์ฌ์ฉํ๋ ๋ค์ด๋ฐ์ ๋ฐ๋ผ ArrayList๋ผ๊ณ ํ๊ธฐ๋ฅผ ํ๋ค.
ํ์์ ๊ธ์ ๋ณด๊ณ ์๋ ๋ถ์ ์กฐ์ธ์ผ๋ก Dynamic Array๋ก ๋ค์ด๋ฐ์ ๋ณ๊ฒฝํ๋ค.
- Java : ArrayList
- C++ : Vector
๊ธฐ๋ณธ์ ์ด๋ฉด์๋ ๋ฉด์ ์ง๋ฌธ์ ๋น ์ง์ง ์๊ณ ๋ฑ์ฅํ๋ ๋จ๊ณจ ์ง๋ฌธ์ด๋ค.
๊ทธ๋์ ์ ๋ฆฌํ๋ ค ํ๋ค.
-
Dynamic Array(ArrayList)
- ์ด๋ฆ์ฒ๋ผ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ค.
- ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋ฐ์ดํฐ ๊ฒ์์ ์ ํฉํ๊ณ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์๊ฐ ๋ณต์ก๋ : O(1)
- ๋ฐ์ดํฐ์ ์ฝ์
, ์ญ์ ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ฐฐ์ด์ ์์ฑํด ๋ณต์ฌํ๋ฏ๋ก ์ฝ์
, ์ญ์ ๊ฐ ๋น๋ฒํ ๊ฒฝ์ฐ ์๋๊ฐ ๋๋ฆฌ๋ฉฐ ๋ถ์ ํฉํ๋ค.
- ์๊ฐ ๋ณต์ก๋ : O(n)
- ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์์ Vector๋ณด๋ค ๋น ๋ฅด๋ค.
-
LinkedList
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ ๋ ธ๋๊ฐ ์ด์ ๋ ธ๋์ ๋ค์ ๋ ธ๋์ ์ํ๋ง ์๊ณ ์์ผ๋ฉด ๋๋ค.
- ๋ฐ์ดํฐ ๊ฒ์ ์์๋ ์ฒ์๋ถํฐ ๋
ธ๋๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ์ค๋ ๊ฑธ๋ฆฌ๋ฉฐ ์ฑ๋ฅ์ ์ข์ง ์๋ค.
- ์๊ฐ ๋ณต์ก๋ : O(n)
- ๋ฐ์ดํฐ์ ์ฝ์
, ์ญ์ ์ ๋ถํ์ํ ๋ฐ์ดํฐ์ ๋ณต์ฌ๊ฐ ์์ด ๋ฐ์ดํฐ์ ์ฝ์
, ์ญ์ ์ ์ ๋ฆฌํ๋ค.
- ์๊ฐ ๋ณต์ก๋ : O(1)
- ํ์ง๋ง, ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ธฐ๋ ํ๋ค.
- ์๋ํ๋ฉด ์ฝ์ , ์ญ์ ๋ฅผ ํ๊ธฐ ์ํ ๋ ธ๋๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ๊ฒฐ๊ตญ O(n)์ด ๊ฑธ๋ฆฌ๊ณ ์ฝ์ , ์ญ์ ๋ฅผ ์ํ ์๊ฐ ๋ณต์ก๋๊น์ง ๊ณ์ฐํ๋ฉด ๊ฒฐ๊ตญ O(n)์ด ๊ฑธ๋ฆฐ๋ค.
- ๋ง์ฝ, ์ค๊ฐ ์์์ ์ฝ์ , ์ญ์ ๊ฐ ์๊ณ ๋งจ ์๊ณผ ๋ค ์์์ ์ฝ์ , ์ญ์ ๋ง ํ๋ค๋ฉด O(1)์ด ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด O(n).
๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ๊ฒ์์ด ์ฃผ๊ฐ ๋๋ ๊ฒฝ์ฐ์๋ Dynamic Array(ArrayList)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ข๋ค.
๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ ๊ฐ ๋น๋ฒํ๋ค๋ฉด Dynamic Array(ArrayList)๋ณด๋ค๋ LinkedList๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ๋ซ๋ค.
++์ถ๊ฐ
์ค์ ๋ก ๋ฐฑ์ค์ ์๋ ์ผ์ฑ ๊ธฐ์ถ ๋ฌธ์ ์ค ๋๋ฌด ์ฌํ ํฌ ๋ฌธ์ ๋ฅผ ํ ๋, ArrayList๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ฐ ์ด๊ณผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ด ๋ฌธ์ ์์๋ ๋๋ฌด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฆฌ์คํธ๊ฐ ์กด์ฌํ๋๋ฐ, ์ฃฝ์ ๋๋ฌด์ ๊ฒฝ์ฐ ๋๋ฌด ๋ฆฌ์คํธ์์ ๋๋ฌด๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ค. ๋ฐ๋ผ์ ๋น๋ฒํ ์ญ์ ๋ฐ ์ฝ์ ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ LinkedList๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ ํจ์จ์ ์ด๋ค. ๋๋ฌด ์ฌํ ํฌ ๋ฌธ์ ๋ฅผ ๊ผญ ํ์ด๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค.