[์ž๋ฃŒ๊ตฌ์กฐ] ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)

2022. 3. 11. 18:28

๋ณธ ํฌ์ŠคํŒ…์€ ํ•˜๋ƒฅ์ด์˜ ๊ฐœ๋ฐœ์ผ์ง€ ์Šคํ„ฐ๋””์— ์ฐธ์—ฌํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ๊ธฐ์ˆ ๋ฉด์ ‘ ์งˆ๋ฌธ

Q. Linked List์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด์„ธ์š”.

๋”๋ณด๊ธฐ

A.

Linked List๋Š” ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ•˜๊ธฐ์— ์ข‹์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„(ํƒ์ƒ‰) ๋•Œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ํ•˜๋Š” ๊ฒƒ์€ ๋А๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ์ด ๋งŽ์„ ๋•Œ Linked List๋ฅผ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Q. Array์™€ Linked List์˜ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”? (N์‚ฌ ์ „ํ™”๋ฉด์ ‘)

๋”๋ณด๊ธฐ
Array List๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋Š˜์–ด์„  ๋ฐฐ์—ด์˜ ํ˜•์‹์„ ์ทจํ•˜๊ณ  ์žˆ์ง€๋งŒ, Linked List๋Š” ์ž๋ฃŒ์˜ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

- Array List
    - ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋ฌด์ž‘์œ„๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. (Random Access ๊ฐ€๋Šฅ)
    - ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์žฌ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜๋‹ค.
         -> (์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋Ÿญ์„ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ)
    - ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€/์‚ญ์ œ๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ž„์‹œ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ ๋ณต์ œํ•˜๊ณ  ์žˆ์–ด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

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

A.

  Array Linked List
๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฐฉ์‹ Random Access
(์ธ๋ฑ์Šค ํ†ตํ•ด ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ)
Sequential Access
(์ˆœ์ฐจ์  ๊ฒ€์ƒ‰ํ•˜์—ฌ ํƒ์ƒ‰)
ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„ O(1) O(N)
๋ฐ์ดํ„ฐ ์ €์žฅ๋ฐฉ์‹ ์—ฐ์†์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
(๋ฐ์ดํ„ฐ๊ฐ€ ์ธ์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์—ฐ์ด์–ด ์ €์žฅ)
์ƒˆ๋กœ์šด ์š”์†Œ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ์ฃผ์†Œ๊ฐ€ ์ด์ „์š”์†Œ์— ์ €์žฅ
์‚ฝ์ž…, ์‚ญ์ œ ์‹œ๊ฐ„๋ณต์žก๋„ O(N) O(1)
๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ •์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
(์„ ์–ธ์‹œ ์ปดํŒŒ์ผ ํƒ€์ž„์— ํ• ๋‹น)
(์ฆ‰, ์„ ์–ธ์‹œ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •)
๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
(๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‹œ ๋Ÿฐํƒ€์ž„์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น)
(์ฆ‰, ๋ฐ์ดํ„ฐ ์‚ฝ์ž…์‹œ๋งˆ๋‹ค ์ฆ๊ฐ€)
Stack ์„น์…˜์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น Heap ์„น์…˜์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

 

 

Linked List๋ž€?


๐Ÿ’ก ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์™€ ๋ฐฐ์—ด์€ ์„œ๋กœ์˜ ์žฅ๋‹จ์ ์„ ๋ณด์™„ํ•ด์ฃผ๋Š” ๊ด€๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•  ๋•Œ์—๋Š” ๋ฐฐ์—ด๊ณผ ๋ฌถ์–ด์„œ ์„ค๋ช…ํ•œ๋‹ค.

 

Array

์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ

 


์žฅ์ 

  • ๋ฐฐ์—ด์€ ๋ฐ์ดํ„ฐ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด ํŠน์ง• ๋•๋ถ„์— index๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์ด ๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

๋‹จ์ 

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

 

Linked List

์ž๊ธฐ ์ฐธ์กฐ ๊ตฌ์กฐ์ฒด์˜ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ์—ฐ์‚ฐ์„ ์ด์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

โœ” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋–จ์–ด์ง„ ๊ณต๊ฐ„์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ๋‘” ๊ฒƒ์ด๋‹ค.
โœ” ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ํŠน์ง•์ด๋ฉฐ, ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ตฌํ˜„์ด ์–ด๋ ต๋‹ค.
โœ” ํ, ์Šคํƒ, ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋“ฑ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ(์ถ”์ƒ์ž๋ฃŒํ˜•, ADT)์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค.
์žฅ์ 

  • ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…/์‚ญ์ œ ์‹œ์—๋„ ์—ฐ๊ฒฐ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋˜๋ฏ€๋กœ ๋ชจ๋“  ๊ฐ’์„ ์žฌ๋ฐฐ์—ดํ•˜๋Š” ๋“ฑ์˜ ์ถ”๊ฐ€์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

๋‹จ์ 

  • ์ˆœ์ฐจ์  ํƒ์ƒ‰์œผ๋กœ ํŠน์ • ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์— ๋น„ํ•ด ํƒ์ƒ‰์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.
  • ํ˜„์žฌ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์Œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์ •๋ณด๊นŒ์ง€ ์ €์žฅํ•ด๋‘์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ณ„๋„์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•ด์„œ ํšจ์œจ์ด ์ข‹์ง€ ์•Š๋‹ค.

 

ํ˜•ํƒœ

โœ” {Node : (Data, link)}๊ฐ€ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ์จ ์ €์žฅ๋œ๋‹ค.
โœ” ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ : Head node
๋ฆฌ์ŠคํŠธ์˜ ๋ : Tail node = End node
* ํ†ต์ƒ ๋ฌต์‹œ์ ์œผ๋กœ, ๋ฐ์ดํ„ฐ ์—†์ด ์‹œ์ž‘, ๋ ๋งŒ์„ ์•Œ๋ฆผ

์‹œ๊ฐ„๋ณต์žก๋„

  Array Linked List
ํƒ์ƒ‰ (ํŠน์ • ๋ฐ์ดํ„ฐ) O(1) O(1)
์‚ฝ์ž…/์‚ญ์ œ O(N) O(1)

 

 

Linked List์˜ ์—ฐ์‚ฐ


์‚ฝ์ž…

  • ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์‚ฝ์ž…ํ•˜๋ ค๋Š” ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค.

 

  • ์‚ฝ์ž…ํ•  ๋…ธ๋“œ๋ฅผ NewNode๋ผ๊ณ  ํ•˜๋ฉด, NewNode๊ฐ€ ๊ทธ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.
NewNode.next -> RightNode

 

  • ์ƒˆ๋กœ ์‚ฝ์ž…ํ•œ ๋…ธ๋“œ์˜ ์ด์ „ ๋…ธ๋“œ๊ฐ€ ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.
LeftNode.next -> NewNode

 

 

์‚ญ์ œ

  • ํƒ์ƒ‰์„ ํ†ตํ•ด ์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” ๋…ธ๋“œ (TargetNode)๋ฅผ ์ฐพ๋Š”๋‹ค.

 

  • TargetNode์˜ ์™ผ์ชฝ ๋…ธ๋“œ๊ฐ€ TargetNode์˜ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.
LeftNode.next -> TargetNode.next

 

  • TargetNode๊ฐ€ RightNode๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค TargetNode.next -> NULL



Singly Linked List

๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

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


์ด๋ฅผ ๋ณด์™„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฐ”๋กœ ๋‹ค์Œ์— ์„ค๋ช…ํ•  ์ด์ค‘ (์–‘๋ฐฉํ–ฅ) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ด๋‹ค.

Doubly Linked List

์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

  • ์ˆœ์ฐจ์  ํƒ์ƒ‰์ด ํ•„์ˆ˜์ ์ธ ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ด๋‹ค.
  • '๋‹ค์Œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๊ฐ’' ๊ทธ๋ฆฌ๊ณ  '์ด์ „ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๊ฐ’'์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ด๋‹ค. ์ฆ‰, ๋…ธ๋“œ ์•ˆ์— '๋ฐ์ดํ„ฐ ๊ฐ’'๊ณผ '์ด์ „, ์ดํ›„ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๊ฐ’'์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ์ž์‹ ์ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•ž์ชฝ์— ๊ฐ€๊นŒ์šฐ๋ฉด 'head'๋ถ€ํ„ฐ, ๋’ค์ชฝ์— ๊ฐ€๊นŒ์šฐ๋ฉด 'tail'๋ถ€ํ„ฐ ์ฐพ์•„๋ณด๋ฉด ๋”์šฑ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

Circular Linked List

์›ํ˜• ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

  • ๋งˆ์ง€๋ง‰ Node์˜ ๋งํฌ๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ Node๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  • ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ๊ณผ ๋์„ ์—ฐ๊ฒฐํ•˜๋ฉด ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋จ



์ฐธ๊ณ  :

๋”๋ณด๊ธฐ

 

BELATED ARTICLES

more