1. ์Šคํƒ (Stack)

2025. 5. 19. 17:35ยทCS/Data Structures

๐Ÿ’ก ํ•ต์‹ฌ ์„ค๋ช…

LIFO ๊ตฌ์กฐ. ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๊ด„ํ˜ธ ๊ฒ€์‚ฌ์— ํ™œ์šฉ


๐Ÿ“Œ ๊ฐœ๋…

์Šคํƒ(Stack)์€ ํ›„์ž…์„ ์ถœ(LIFO, Last In First Out) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค.

๋ฐ์ดํ„ฐ๊ฐ€ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„ ์˜ฌ๋ผ๊ฐ€๋Š” ํ˜•ํƒœ์ด๋ฉฐ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

์—ฐ์‚ฐ

push ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ top ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๊ณ ,

pop ์—ฐ์‚ฐ์„ ํ†ตํ•ด top ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋Š” top์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ค‘๊ฐ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.


โœ… ์ถ”๊ฐ€ ์„ค๋ช…

์Šคํƒ(Stack) vs ํ(Queue) ๋น„๊ต

ํŠน์„ฑ ์Šคํƒ(Stack) ํ(Queue)
๊ตฌ์กฐ ํ›„์ž…์„ ์ถœ(LIFO) ์„ ์ž…์„ ์ถœ(FIFO)
์‚ฝ์ž… ๋ฐฉ์‹ push (top์—์„œ ์‚ฝ์ž…) enqueue (rear์—์„œ ์‚ฝ์ž…)
offer (java)
์‚ญ์ œ ๋ฐฉ์‹ pop (top์—์„œ ์‚ญ์ œ) dequeue (front์—์„œ ์‚ญ์ œ)
poll (java)
์ ‘๊ทผ ๋ฐฉ์‹ top์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅ front์—์„œ๋งŒ ์‚ญ์ œ,
rear์—์„œ ์‚ฝ์ž…
์‚ฌ์šฉ ์‚ฌ๋ก€ ์‹คํ–‰ ์ทจ์†Œ(undo), ์—ญ์ˆœ ๋ฌธ์ž์—ด ์€ํ–‰ ์—…๋ฌด, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ

๐Ÿ’ฏ  ๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๐Ÿ“ ๊ด„ํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (Valid Parentheses)

  • ์„ค๋ช…: (), {}, [] ์™€ ๊ฐ™์€ ๊ด„ํ˜ธ์˜ ์—ด๋ฆผ๊ณผ ๋‹ซํž˜์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ๊ฒ€์‚ฌ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜:
    1. ์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ์Šคํƒ์— push
    2. ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด, ์Šคํƒ์˜ top๊ณผ ์ง์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ณ  pop
    3. ๋ชจ๋“  ๊ด„ํ˜ธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ์Šคํƒ์ด ๋น„์–ด ์žˆ์–ด์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

 

๐Ÿ“ ์ˆ˜์‹ ๊ณ„์‚ฐ (ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ• - Postfix Expression Evaluation)

  • ์„ค๋ช…: ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ž‘์„ฑ๋œ ์ˆ˜์‹์„ ๊ณ„์‚ฐ
  • ์˜ˆ์‹œ: 3 4 + 2 * → ((3+4) * 2)
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜:
    1. ์ˆซ์ž๋Š” ์Šคํƒ์— push
    2. ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํƒ์—์„œ ์ˆซ์ž 2๊ฐœ pop → ์—ฐ์‚ฐ → ๊ฒฐ๊ณผ push

 

๐Ÿ“ ์ค‘๋ณต ๋ฌธ์ž ์ œ๊ฑฐ / ๋ฌธ์ž์—ด ์••์ถ•

  • ์˜ˆ์‹œ: abbaca → ca (๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜์˜ฌ ๋•Œ ์ œ๊ฑฐ)
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜:
    1. ์Šคํƒ์— ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ push
    2. ํ˜„์žฌ ๋ฌธ์ž์™€ top์ด ๊ฐ™์œผ๋ฉด pop (์ค‘๋ณต ์ œ๊ฑฐ)

 

๐Ÿ“ Histogram์—์„œ ๊ฐ€์žฅ ํฐ ์ง์‚ฌ๊ฐํ˜• ๊ตฌํ•˜๊ธฐ

  • ์„ค๋ช…: ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ€์žฅ ๋„“์€ ์ง์‚ฌ๊ฐํ˜• ๊ตฌํ•˜๊ธฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ:
    • ๊ฐ ๋ง‰๋Œ€์— ๋Œ€ํ•ด ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ•œ๊ณ„๋ฅผ ์Šคํƒ์„ ์ด์šฉํ•ด ๊ณ„์‚ฐ

 

๐Ÿ“ Next Greater Element (๋‹ค์Œ ํฐ ์ˆซ์ž ์ฐพ๊ธฐ)

  • ์„ค๋ช…: ๋ฐฐ์—ด์—์„œ ํ˜„์žฌ ์ˆซ์ž๋ณด๋‹ค ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ˆซ์ž ์ค‘ ์ฒ˜์Œ์œผ๋กœ ํฐ ์ˆซ์ž ์ฐพ๊ธฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜:
    1. ์Šคํƒ์— ์ธ๋ฑ์Šค ๋˜๋Š” ๊ฐ’์„ ์ €์žฅ
    2. ํ˜„์žฌ ๊ฐ’์ด ์Šคํƒ top๋ณด๋‹ค ํฌ๋ฉด, ํ•ด๋‹น ์ธ๋ฑ์Šค์— ํ˜„์žฌ ๊ฐ’์„ ์ •๋‹ต์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  pop

 

๐Ÿ“ DFS (๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) ๋น„์žฌ๊ท€ ๊ตฌํ˜„

  • ์„ค๋ช…: ์Šคํƒ์„ ํ™œ์šฉํ•ด ์žฌ๊ท€ ์—†์ด DFS ๊ตฌํ˜„

 

๐Ÿ“ ๋ฐฑํŠธ๋ž˜ํ‚น ์‹œ ์Šคํƒ ์‚ฌ์šฉ

  • ์„ค๋ช…: ๊ฒฝ๋กœ ์ €์žฅ, ์ƒํƒœ ๋ณต์› ๋“ฑ์„ ์œ„ํ•ด ์Šคํƒ์„ ์‚ฌ์šฉ

 


๐Ÿง  ์Šคํƒ ์‘์šฉ ํŒ

  • ๋ฌธ์ œ์— "์ตœ๊ทผ ๊ฒƒ" ๋˜๋Š” "๋˜๋Œ๋ฆฌ๊ธฐ" ๊ฐœ๋…์ด ๋ณด์ด๋ฉด ์Šคํƒ์„ ์˜์‹ฌ
  • ๋ฌธ์ž์—ด ๋ฌธ์ œ์—์„œ๋„ ์Šคํƒ์„ ๋งŽ์ด ํ™œ์šฉ (ํŠนํžˆ ์ค‘์ฒฉ ๊ตฌ์กฐ ํŒŒ์•…, ๋˜๋Œ๋ฆฌ๊ธฐ, ์ค‘๋ณต ์ œ๊ฑฐ ๋“ฑ).

 


๐Ÿ• ์‹œ๊ฐ„๋ณต์žก๋„

์‚ฝ์ž…/์‚ญ์ œ O(1)

'CS > Data Structures' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

3. ๋ฑ (Deque)  (0) 2025.05.19
2. ํ (Queue)  (1) 2025.05.19
'CS/Data Structures' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 3. ๋ฑ (Deque)
  • 2. ํ (Queue)
3์—ฐ
3์—ฐ
  • 3์—ฐ
    ์„ธ์ฝ”๋”ฉ
    3์—ฐ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (28)
      • CS (9)
        • Artificial Intelligence (0)
        • Data Structures (3)
        • Operating System (4)
        • Computer Networks (2)
      • JavaScript (0)
        • React (0)
        • Vue (0)
      • Java (2)
        • MongoDB (2)
      • Spring (1)
      • Algorithms (0)
      • News (12)
      • etc. (4)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
3์—ฐ
1. ์Šคํƒ (Stack)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”