[Python ์ž๋ฃŒ๊ตฌ์กฐ] Stack(์Šคํƒ) ๊ตฌํ˜„ํ•˜๊ธฐ

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

 

๋ฐ˜์‘ํ˜•