๐Ÿ“–Stack

๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„ ์˜ฌ๋ฆฐ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ stack : ์Œ“์•„ ์˜ฌ๋ฆผ

๐Ÿ“–ํŠน์ง•

  • LIFO(Last In First Out)์˜ ๊ตฌ์กฐ
  • ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ํ•œ์ชฝ ๋top์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง (`top์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ)
  • ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋ฉด์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•จ ( โˆต top์˜์™ธ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ)

๐Ÿ“–์—ฐ์‚ฐ

  • push(x) : ์Šคํƒ์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
  • pop() : ์Šคํƒ์˜ ๋งจ ์œ„ ๋ฐ์ดํ„ฐ(top)๋ฅผ ์‚ญ์ œํ•˜๊ณ  return
  • isEmpty() : ์Šคํƒ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด True, ์žˆ์œผ๋ฉด False return
  • size() : ์Šคํƒ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ return
  • top() : ์Šคํƒ์˜ ๋งจ ์œ„ ๋ฐ์ดํ„ฐ(top)๋ฅผ return

๐Ÿ“–์‚ฌ์šฉ

  • ์›น ๋ธŒ๋ผ์šฐ์ € ๋ฐฉ๋ฌธ๊ธฐ๋ก(๋’ค๋กœ๊ฐ€๊ธฐ) : ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์—ด๋ฆฐ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด์—ฌ์คŒ
  • ์‹คํ–‰ ์ทจ์†Œ(undo) : ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‹คํ–‰๋œ ๊ฒƒ๋ถ€ํ„ฐ ์‹คํ–‰ ์ทจ์†Œ
  • ์—ญ์ˆœ ๋ฌธ์ž์—ด ์ƒ์„ฑ : ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ž…๋ ฅ๋œ ๋ฌธ์ž๋ถ€ํ„ฐ ์ถœ๋ ฅ
  • DFS(Deep-First Search) ๊ตฌํ˜„
  • ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ• ๊ณ„์‚ฐ

๐Ÿ“–์‹œ๊ฐ„๋ณต์žก๋„

์—ฐ์‚ฐ์‹œ๊ฐ„๋ณต์žก๋„
์‚ฝ์ž…O(1)
์‚ญ์ œO(1)
ํƒ์ƒ‰O(n)