2021. 1. 16. 11:05ใ๐ Algorithm/๐ Python ๋ฌธ๋ฒ
์ค๋์ LIFO ๊ตฌ์กฐ์ธ Stack์ ํ์ด์ฌ์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํฌ์คํ ํ๋ ค๊ณ ํฉ๋๋ค!
์คํ๊ณผ ๋ฐ๋๋ก FIFO ๊ตฌ์กฐ์ธ ํ์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด !? ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
Stack(์คํ) ?!
์คํ์ LIFO(Last - In - First - Out)๋ก์จ ๊ฐ์ฅ ๋์ค์ ๋ค์ด์จ ์๋ฃ๊ฐ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ด์ด์ง๋ค๋ผ๊ณ ์ดํดํ๋ฉด ์ฝ์ต๋๋ค.
Python์์ Stack ๊ตฌํํ๊ธฐ
Python์์๋ ๊ธฐ๋ณธ ํด๋์ค์ธ list๋ฅผ ํตํด ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์์์ต๋๋ค.
list pop / push ์๊ฐ๋ณต์ก๋
pop Item | list.pop( ) | O(1) |
push Item | list.append(item) | O(1) |
list๋ฅผ ์ด์ฉํ์ฌ Stack ๊ตฌํํ๊ธฐ
stack - Init
list๋ ํ์ด์ฌ์์ ์์ฃผ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฆฌ์คํธ ์๋ฃํ ์์ฑ์ ๋งค์ฐ ์ต์ํ์ค๊ฑฐ ๊ฐ์ต๋๋ค.
stack = [] # []
stack = [1,2,3] # [1,2,3]
stack - push
์คํ์ ์์๋ฅผ ๋ฃ์ ๋์๋ append ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์๋ฅผ ๋ฃ์ผ์ค ์ ์์ต๋๋ค.
stack = []
stack.append(4) # [4]
stack.append(2) # [4,2]
stack - pop
์คํ์ ์์๋ฅผ ์ ๊ฑฐํ ๋๋ pop ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์ด๋ pop๋ฉ์๋์ ์ํด ์ ๊ฑฐ๋ ์์๋ฅผ ๋ฆฌํด ๋ฐ์ต๋๋ค.
stack = [1,2,3,4]
top = stack.pop() # stack [1,2,3]
print(top) # 4
stack - top
์คํ์์ ์์๋ฅผ ์ ๊ฑฐํ์ง ์๊ณ ๊ฐ์ ธ์ค๊ธฐ๋ง ํ ๋์๋ [-1]์ ์ด์ฉํ์ฌ ์ฐพ์ ์ ์์ต๋๋ค.
stack = [1,2,3,4]
top = stack[-1]# 4 , stack [1,2,3,4]
print(top) # 4
์คํ์ ๊ตฌํํ ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ์์ธํ๊ฒ ์๊ณ ์ถ๋ค๋ฉด!? ์๋ ํฌ์คํ ๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
'๐ Algorithm > ๐ Python ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python ๊ธฐ์ด ์๋ฆฌ์ฆ1] ์ซ์ ๋ฐ ๋ ผ๋ฆฌํ ์๋ฃ (0) | 2021.04.08 |
---|---|
[Python] Set(์ ) (0) | 2021.01.16 |
[Python ์๋ฃ๊ตฌ์กฐ] Hash(ํด์) (0) | 2021.01.16 |