๐Ÿ’ป [์ฝ”ํ…Œ02] 6์žฅ ์Šคํƒ 7์žฅ ํ

๊น€๋ฏธ์—ฐยท2024๋…„ 1์›” 29์ผ
0

6์žฅ. ์Šคํƒ

06-1. ์Šคํƒ ๊ฐœ๋…

  • ์„ ์ž…ํ›„์ถœ(FILO;First In Last Out) : ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ๋งˆ์ง€๋ง‰์— ๋‚˜์˜ค๋Š” ๊ทœ์น™
  • push : ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ
  • pop : ์Šคํƒ์—์„œ ๊บผ๋‚ด๋Š” ์—ฐ์‚ฐ

06-2. ์Šคํƒ์˜ ์ •์˜

  • ADP(Abstract data type; ์ถ”์ƒ ์ž๋ฃŒํ˜•) : ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์žˆ๊ณ  ์‹ค์ œ๋กœ ๊ตฌํ˜„์€ ๋˜์ง€ ์•Š์€ ์ž๋ฃŒํ˜•
  • ์Šคํƒ์—๋Š” ํ‘ธ์‹œ, ํŒ, ๊ฐ€๋“ ์ฐผ๋Š”์ง€ ํ™•์ธ, ๋น„์—ˆ๋Š”์ง€ ํ™•์ธ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ ์ •์˜ ํ•„์š”

06-3. ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ

stack = []
max_size = 10

def isFull(stack):
	# ์Šคํƒ์ด ๊ฐ€๋“ ์ฐผ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
	return len(stack) == max_size

def isEmpty(stack):
    # ์Šคํƒ์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
    return len(stack) == 0

def push(stack, item):
    # ์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜
    if isFull(stack):
        print("์Šคํƒ์ด ๊ฐ€๋“ ์ฐผ์Šต๋‹ˆ๋‹ค.")
    else:
        stack.append(item)
        print("๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")

def pop(stack):
    # ์Šคํƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ํ•จ์ˆ˜
    if isEmpty(stack):
        print("์Šคํƒ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.")
        return None
    else:
        return stack.pop()

06-3. ํ•ฉ๊ฒฉ์ž๊ฐ€ ๋˜๋Š” ๋ชจ์˜ ํ…Œ์ŠคํŠธ

๋ฌธ์ œ10_๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ
๋ฌธ์ œ11_์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ
๋ฌธ์ œ12_์ฃผ์‹ ๊ฐ€๊ฒฉ
๋ฌธ์ œ13_ํฌ๋ ˆ์ธ ์ธํ˜• ๋ฝ‘๊ธฐ ๊ฒŒ์ž„
๋ฌธ์ œ14_ํ‘œ ํŽธ์ง‘

โ€‹

7์žฅ. ํ

07-1. ํ์˜ ๊ฐœ๋…

  • ์„ ์ž…์„ ์ถœ(FIFO; Fist In Fiirt Out)
  • push : ์‚ฝ์ž… ์—ฐ์‚ฐ
  • pop : ๊บผ๋‚ด๋Š” ์—ฐ์‚ฐ
  • ํ์˜ ํŠน์„ฑ์„ ํ™œ์šฉํ•˜๋Š” ๋ถ„์•ผ : ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ(์ž‘์—… ๋Œ€๊ธฐ์—ด, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ)
  • ํ์—๋„ ํ‘ธ์‹œ, ํŒ, ๊ฐ€๋“ ์ฐผ๋Š”์ง€ ํ™•์ธ, ๋น„์—ˆ๋Š”์ง€ ํ™•์ธ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ ์ •์˜ ํ•„์š”
  • ํ ๊ตฌํ˜„ : ๋ฆฌ์ŠคํŠธ, ๋ฑ ํ™œ์šฉ

07-2. ํ ๊ตฌํ˜„ํ•˜๊ธฐ

  • ๋ฆฌ์ŠคํŠธ๋ฅผ ํ์ฒ˜๋Ÿผ ํ™œ์šฉํ•˜๊ธฐ
queue = []

# ํ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
queue.append(1)
queue.append(2)
queue.append(3)

# ํ์˜ ๋งจ ์•ž ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
first_item = queue.pop(0)
print(first_item)  # ์ถœ๋ ฅ: 1

# ํ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
queue.append(4)
queue.append(5)

# ํ์˜ ๋งจ ์•ž ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
first_item = queue.pop(0)
print(first_item)  # ์ถœ๋ ฅ: 2

07-3. ํ•ฉ๊ฒฉ์ž๊ฐ€ ๋˜๋Š” ๋ชจ์˜ ํ…Œ์ŠคํŠธ

๋ฌธ์ œ16_๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
๋ฌธ์ œ17_์นด๋“œ ๋ญ‰์น˜

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด