stack

์Šคํƒ

์Šคํƒ: Last In First Out

ํ: First In First Out

ํ˜ธ์ถœ์Šคํƒ ๋ถ„์„

์šฐ์„  ํ˜ธ์ถœ๊ณผ ์„ ์–ธ์„ ๊ตฌ๋ณ„ํ•ด์•ผํ•œ๋‹ค.

  1. (์ต๋ช…)์Šคํƒ: ์‹คํ–‰ํ•˜๋ ค๋Š” ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ์ต๋ช… ํ•จ์ˆ˜๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

  2. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์„ ์–ธ๋ถ€๊ฐ€ ์‹คํ–‰๋จ - a() ํ˜ธ์ถœ์ด ์ƒ๊ธฐ๊ณ  ํ˜ธ์ถœ์Šคํƒ์— a๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

  3. 7๋ฒˆ์งธ ์ค„ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

  4. 9๋ฒˆ์งธ ์ค„ console๋„ ํ˜ธ์ถœ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์Šคํƒ์— log๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”๋กœ 10๋ฒˆ์งธ ์ฝ”๋“œ์ธ function b()๋กœ ๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ console.log(โ€™aโ€™) ์˜ ์„ ์–ธํ•œ ๋ถ€๋ถ„์œผ๋กœ ๊ฐ€์•ผํ•˜์ง€๋งŒ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์Šคํƒ์—๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ํ˜ธ์ถœ์Šคํƒ์— ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ ๋น ์กŒ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

  5. 15๋ฒˆ์งธ ์ค„ b() ๊ฐ€ ํ˜ธ์ถœ์Šคํƒ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  10๋ฒˆ์งธ ์ค„์˜ b()์˜ ์„ ์–ธ ๋ถ€๋ถ„์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

  6. 12๋ฒˆ์งธ ์ค„ console.log(โ€™bโ€™)๊ฐ€ ํ˜ธ์ถœ์Šคํƒ์— ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ ๋น ์ง„๋‹ค.

  7. 13๋ฒˆ์งธ ์ค„ c() ๊ฐ€ ํ˜ธ์ถœ ์Šคํƒ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. (14๋ฒˆ์งธ ์ค„๋กœ ๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ) 2๋ฒˆ์งธ ์ค„ c()์„ ์–ธ๋ถ€๋กœ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

  8. 4๋ฒˆ์งธ ์ค„ console.log(โ€™cโ€™) ๊ฐ€ ํ˜ธ์ถœ์Šคํƒ์— ๋“ค์–ด๊ฐ”๋‹ค ๋น ์ง„๋‹ค.

์„ ์–ธ๋ถ€๊ฐ€ ๋ชจ๋‘ ์‹คํ–‰๋˜๋ฉด ์ด์ œ ํ˜ธ์ถœ์Šคํƒ์— ์Œ“์ธ ํ˜ธ์ถœ๋“ค์ด ๋น ์ ธ๋‚˜๊ฐˆ ์ฐจ๋ก€๋‹ค.

  1. 5๋ฒˆ์งธ ์ค„ c()ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด c๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

  2. 14๋ฒˆ์งธ ์ค„์˜ b()ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด์„œ b๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

  3. 16๋ฒˆ์งธ ์ค„์˜ a() ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด์„œ a ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

  4. 19๋ฒˆ์งธ ์ค„์˜ c() ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด์„œ 2๋ฒˆ์งธ ์ค„์˜ c() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 4๋ฒˆ์งธ ์ค„์˜ console.log(โ€™cโ€™)๊ฐ€ ํ˜ธ์ถœ์Šคํƒ์— ๋“ค์–ด๊ฐ”๋‹ค ๋น ์ง„๋‹ค.

๊ฒฐ๋ก : ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ์Šคํƒ์— ๋“ค์–ด๊ฐ€๊ณ  ํ•จ์ˆ˜๊ฐ€ ๋๋‚ ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ์Šคํƒ์—์„œ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

์Šคํƒ ๋ฉ”์„œ๋“œ ํ™œ์šฉ

  • peek ๋˜๋Š” top : stack์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๊ฐ’(ํ˜„์žฌ ๊ฐ’)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • push : stack์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

  • pop : stack์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

  • empty : stack์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์ฐธ(true), ์—†์œผ๋ฉด ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์Šคํƒ์˜ Big O

์‚ฝ์ž…: O(1)

์ œ๊ฑฐ: O(1)

๊ฒ€์ƒ‰: O(n)

์ ‘๊ทผ: O(n)

Last updated