2021. 1. 16. 11:05ใ๐ Algorithm/๐ Python ๋ฌธ๋ฒ
์ค๋์ LIFO ๊ตฌ์กฐ์ธ Stack์ ํ์ด์ฌ์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํฌ์คํ ํ๋ ค๊ณ ํฉ๋๋ค!
์คํ๊ณผ ๋ฐ๋๋ก FIFO ๊ตฌ์กฐ์ธ ํ์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด !? ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
[Python ์๋ฃ๊ตฌ์กฐ] Queue (ํ) ๊ตฌํํ๊ธฐ
Queue(ํ) ?! ํ๋ FIFO (First - In - First - Out) ๋ก์จ ๋จผ์ ์ฝ์ ๋ item ์์ผ๋ก ๊บผ๋ด์ด์ง๋ค๊ณ ์ดํดํ๋ฉด ์ฌ์ธ๊ฑฐ ๊ฐ์ต๋๋ค. ํ์ ์ข ๋ฅ์๋ ์์ฐจ์ ์ธ ํ์ ์ํ ํ(์ํ์ผ๋ก ์ด๋ฃจ์ด์ง Queue)๊ฐ ์์ต๋๋ค. Python.
yunaaaas.tistory.com
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
์คํ์ ๊ตฌํํ ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ์์ธํ๊ฒ ์๊ณ ์ถ๋ค๋ฉด!? ์๋ ํฌ์คํ ๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
๋ฆฌ์คํธ(List)
ํ์ด์ฌ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃํ์ธ ๋ฆฌ์คํธ(List)์ ๋ํด ๊ฐ๋จํ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. ๋ฆฌ์คํธ์ ๋ช๋ช ๊ธฐ๋ฅ๋ค์ ๋ํด์ ์๊ฐํด๋ณผ๊ฒ์! ๐ List ์ธ๋ฑ์ฑ/์ฌ๋ผ์ด์ฑ ๊ธฐ๋ฅ ๋ฆฌ์คํธ์์ ์ํ๋ ๊ฐ
yunaaaas.tistory.com
'๐ Algorithm > ๐ Python ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python ๊ธฐ์ด ์๋ฆฌ์ฆ1] ์ซ์ ๋ฐ ๋ ผ๋ฆฌํ ์๋ฃ (0) | 2021.04.08 |
---|---|
[Python] Set(์ ) (0) | 2021.01.16 |
[Python ์๋ฃ๊ตฌ์กฐ] Hash(ํด์) (0) | 2021.01.16 |