stack
Last updated
Last updated
์คํ: Last In First Out
ํ: First In First Out
์ฐ์ ํธ์ถ๊ณผ ์ ์ธ์ ๊ตฌ๋ณํด์ผํ๋ค.
(์ต๋ช )์คํ: ์คํํ๋ ค๋ ํ์ผ์ ํ๋์ ์ต๋ช ํจ์๋ก ๋ณด๋ฉด ๋๋ค.
ํจ์๊ฐ ํธ์ถ๋๋ฉด ์ ์ธ๋ถ๊ฐ ์คํ๋จ - a()
ํธ์ถ์ด ์๊ธฐ๊ณ ํธ์ถ์คํ์ a๊ฐ ๋ค์ด๊ฐ๋ค.
7๋ฒ์งธ ์ค ์ฝ๋๊ฐ ์คํ๋๋ค.
9๋ฒ์งธ ์ค console
๋ ํธ์ถ์ด๊ธฐ ๋๋ฌธ์ ํธ์ถ์คํ์ log๊ฐ ๋ค์ด๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก 10๋ฒ์งธ ์ฝ๋์ธ function b()
๋ก ๊ฐ๋๊ฒ ์๋๋ผ console.log(โaโ)
์ ์ ์ธํ ๋ถ๋ถ์ผ๋ก ๊ฐ์ผํ์ง๋ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ํธ์ถ์คํ์๋ ๋ณด์ด์ง ์๋๋ค. ํธ์ถ์คํ์ ๋ค์ด๊ฐ๋ค๊ฐ ๋น ์ก๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
15๋ฒ์งธ ์ค b()
๊ฐ ํธ์ถ์คํ์ผ๋ก ๋ค์ด๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ 10๋ฒ์งธ ์ค์ b()
์ ์ ์ธ ๋ถ๋ถ์ผ๋ก ๋์๊ฐ๋ค.
12๋ฒ์งธ ์ค console.log(โbโ)
๊ฐ ํธ์ถ์คํ์ ๋ค์ด๊ฐ๋ค๊ฐ ๋น ์ง๋ค.
13๋ฒ์งธ ์ค c()
๊ฐ ํธ์ถ ์คํ์ผ๋ก ๋ค์ด๊ฐ๋ค. (14๋ฒ์งธ ์ค๋ก ๊ฐ๋๊ฒ ์๋๋ผ) 2๋ฒ์งธ ์ค c()
์ ์ธ๋ถ๋ก๋ก ๋์๊ฐ๋ค.
4๋ฒ์งธ ์ค console.log(โcโ)
๊ฐ ํธ์ถ์คํ์ ๋ค์ด๊ฐ๋ค ๋น ์ง๋ค.
์ ์ธ๋ถ๊ฐ ๋ชจ๋ ์คํ๋๋ฉด ์ด์ ํธ์ถ์คํ์ ์์ธ ํธ์ถ๋ค์ด ๋น ์ ธ๋๊ฐ ์ฐจ๋ก๋ค.
5๋ฒ์งธ ์ค c()
ํจ์๊ฐ ๋๋๋ฉด c
๊ฐ ๋น ์ ธ๋๊ฐ๋ค.
14๋ฒ์งธ ์ค์ b()
ํจ์๊ฐ ๋๋๋ฉด์ b
๊ฐ ๋น ์ ธ๋๊ฐ๋ค.
16๋ฒ์งธ ์ค์ a()
ํจ์๊ฐ ๋๋๋ฉด์ a
๊ฐ ๋น ์ ธ๋๊ฐ๋ค.
19๋ฒ์งธ ์ค์ c()
ํจ์๊ฐ ํธ์ถ๋๋ฉด์ 2๋ฒ์งธ ์ค์ c()
ํจ์๊ฐ ์คํ๋๋ค. 4๋ฒ์งธ ์ค์ console.log(โcโ)
๊ฐ ํธ์ถ์คํ์ ๋ค์ด๊ฐ๋ค ๋น ์ง๋ค.
๊ฒฐ๋ก : ํธ์ถํ ๋๋ง๋ค ํธ์ถ์คํ์ ๋ค์ด๊ฐ๊ณ ํจ์๊ฐ ๋๋ ๋๋ง๋ค ํธ์ถ์คํ์์ ๋น ์ ธ๋์จ๋ค.
peek ๋๋ top : stack์ ๊ฐ์ฅ ์์ ์๋ ๊ฐ(ํ์ฌ ๊ฐ)์ ๋ฐํํ๋ค.
push : stack์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ค.
pop : stack์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
empty : stack์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ฐธ(true), ์์ผ๋ฉด ๊ฑฐ์ง(false)์ ๋ฐํํ๋ค.
์ฝ์ : O(1)
์ ๊ฑฐ: O(1)
๊ฒ์: O(n)
์ ๊ทผ: O(n)