๋ฆฌ์ŠคํŠธ(List)

1mzยท2021๋…„ 9์›” 22์ผ
1

algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
1/1

๐Ÿงก ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””; ๋‘ ๋ฒˆ์งธ ์ฃผ์ œ '๋ฆฌ์ŠคํŠธ'

  • ๋ฆฌ์ŠคํŠธ๋Š” Stack, Queue, Tree, Graph ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„์— ํ™œ์šฉ๋  ๊ธฐ์ดˆ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.
  • ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ž€ํžˆ ์ €์žฅํ•˜๊ณ , ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ์„ ํ—ˆ์šฉํ•œ๋‹ค.
  • ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋ฆฌ์ŠคํŠธ๋Š” ๊ตฌํ˜„๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋‰œ๋‹ค.

๐Ÿง ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด
(์„ ํ˜•) ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ = ์„ ํ˜• ๋ฆฌ์ŠคํŠธ
(์„ ํ˜•) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ = ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

๐Ÿ’› ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ(Ordered List)

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

    ๐Ÿง ์˜ค๋ฒ„ํ—ค๋“œ๋ž€?
    ์˜ค๋ฒ„ํ—ค๋“œ๋ž€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ํ๋ฆ„์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ ์ค‘ ํ•˜๋‚˜๋กœ ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค์–ด๊ฐ€๋Š” ๊ฐ„์ ‘์ ์ธ ์ฒ˜๋ฆฌ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ๋Š” ๊ตฌํ˜„ํ•  ์ž๋ฃŒ๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
- ํƒ์ƒ‰์—๋Š” ํšจ์œจ์ , ์‚ฝ์ž…/์‚ญ์ œ ์—ฐ์‚ฐ์—๋Š” ๋น„ํšจ์œจ์ 
- ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด๋„ ๋ฐฐ์—ด์€ ์—ฐ์†ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ณต๊ฐ„์ด ๋‚จ์•„ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ ์ดˆ๋ž˜

๋ฐฐ์—ด(Array)

  • ๊ฐ™์€ ์ž๋ฃŒํ˜•์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.
  • ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ์ •์  ์ž๋ฃŒ๊ตฌ์กฐ์ง€๋งŒ, ๋ฐฐ์—ด๋„ ์ •์  ๋ฐฐ์—ด(Static Array)๊ณผ ๋™์  ๋ฐฐ์—ด(Dynamic Array)์ด ์žˆ๋‹ค.
  • ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฐจ์ด ์™ธ์—๋„ ์ •์  ๋ฐฐ์—ด์€ ์„ ์–ธ๋œ ๋ธ”๋ก์ด ๋๋‚˜๋ฉด ์†Œ๋ฉธ๋˜๋Š” ๋ฐ˜๋ฉด, ๋™์  ๋ฐฐ์—ด์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ƒ์„ฑํ•  ์‹œ์ ๊ณผ ํ•ด์ฒดํ•  ์‹œ์ ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ๋Š” ์„œ๋กœ ์ธ์ ‘ํ•ด ์žˆ์–ด ํ•˜๋‚˜์˜ ์›์†Œ์— ์ ‘๊ทผํ•  ๋•Œ ๊ทธ ์˜†์— ์žˆ๋Š” ์›์†Œ๋„ ์บ์‹œ๋กœ ๊ฐ€์ ธ์™€ ์ฃผ๋ณ€ ์›์†Œ์— ์ ‘๊ทผํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.(์บ์‹œ ์ง€์—ญ์„ฑ)

    ๐Ÿง ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ์™€ ๋ฐฐ์—ด
    ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐฐ์—ด(Array)์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’› ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)

  • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฌผ๋ฆฌ์  ์œ„์น˜๋‚˜ ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ๋งํฌ์— ์˜ํ•ด ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ๊ฐ ๋…ธ๋“œ์— ์ €์žฅ๋œ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ์— ์˜ํ•ด ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ์ด๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—ฐ์†๋œ ์ฃผ์†Œ์ผ ํ•„์š”๊ฐ€ ์—†์–ด ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๋‹ค.
  • ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์–ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๋˜๋Š” ์‚ญ์ œ ์‹œ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‹ค.
  • ๊ธธ์ด๊ฐ€ ๊ฐ€๋ณ€์ ์ด๋ฉฐ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•œ๋‹ค.
- ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋™์ž‘ ํ• ๋‹น์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ๋ฆฌ์ŠคํŠธ
- ํƒ์ƒ‰์—๋Š” ๋น„ํšจ์œจ์ , ์‚ฝ์ž…/์‚ญ์ œ ์—ฐ์‚ฐ์—๋Š” ํšจ์œจ์ 
- ๋ฉ”๋ชจ๋ฆฌ ์žฌํ™œ์šฉ์ด ์šฉ์ดํ•˜๊ณ  ๋นˆํ‹ˆ์—†๋Š” ๋ฐ์ดํ„ฐ์˜ ์ ์žฌ๋ผ๋Š” ์žฅ์ ์„ ์ทจํ•œ ์ŠคํŠธ๋Ÿญ์ณ

๐Ÿ’š ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ญ์ œ ๋™์ž‘ ๋น„๊ต

  • ์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ
    ์‚ญ์ œ ์‹œ ์ˆœ์„œ ๊ฐฑ์‹  (์ฃผ์†Œ์™€ ์ธ๋ฑ์Šค ํ™•์ธ)
  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
    ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋งŒ ๋ณ€๊ฒฝ (๋‹ค์Œ ๊ฐ’ ์ฃผ์†Œ ํ™•์ธ)

๐Ÿ’™ JAVA ์˜ ๋ฆฌ์ŠคํŠธ

์ž๋ฐ”๋Š” ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค.

  • ๋ฐฐ์—ด ex) String[]
    ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋ฉด ์›์†Œ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฆฌ์ŠคํŠธ ex) ArrayList<>, LinkedList<>
    ๋”ฐ๋ผ์„œ ๊ฒ€์ƒ‰์šฉ์œผ๋กœ๋Š” ArrayList๋ฅผ, ์‚ฝ์ž…/์‚ญ์ œ์šฉ์œผ๋กœ๋Š” LinkedList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
profile
๐Ÿ‘ป๐ŸŒˆ

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 9์›” 22์ผ

์ข‹์€ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ^___^

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ