[BOJ](python) ์Šคํƒ (stack)

berry ยท2022๋…„ 3์›” 1์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
60/77
post-thumbnail

๐Ÿงฉ ๋ฌธ์ œ


์Šคํƒ


๐Ÿงฉ ์Šคํƒ(Stack)

๐Ÿ“Œ ์ •์˜

  • ๋ฆฌ์ŠคํŠธ์˜ ํ•œ ์ชฝ ๋์œผ๋กœ๋งŒ ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง€๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ
  • ์Šคํƒ์€ ๋‚˜์ค‘์— ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋˜๋Š” ํ›„์ž…์„ ์ถœ(LIFO)์˜ ๋ฐฉ์‹์œผ๋กœ ์ž๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    ์Šคํƒ์„ ๊ผฌ์น˜ ์•„์ด์ฝ˜์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ๋„ LIFO ๋ผ์„œ!

๐Ÿ“Œ ์šฉ์–ด

  • Top: ์Šคํƒ์œผ๋กœ ํ• ๋‹น๋œ ๊ธฐ์–ต ๊ณต๊ฐ„์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ธฐ์–ต๋œ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  • Bottom: ์Šคํƒ์˜ ๊ฐ€์žฅ ๋ฐ‘๋ฐ”๋‹ฅ
  • Push: ์ž…๋ ฅ
  • Pop: ์ถœ๋ ฅ
  • Overflow: ์Šคํƒ์˜ ๊ณต๊ฐ„์ด ๋‹ค ์ฑ„์›Œ์ ธ์žˆ๋Š” ์ƒํƒœ์—์„œ Push ํ–ˆ์„ ๊ฒฝ์šฐ
  • Underflow: ์Šคํƒ์ด ๋‹ค ๋น„์›Œ์ ธ ์žˆ์„ ๋•Œ Popํ–ˆ์„ ๊ฒฝ์šฐ

๐Ÿ“Œ ์šฉ๋„

  • ์žฌ๊ท€ ํ˜ธ์ถœ, ํ›„์œ„(Post Fix)ํ‘œ๊ธฐ๋ฒ•, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ๋“ฑ
  • ์™”๋˜ ๊ธธ์„ ๋Œ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ

๐Ÿ ๋‚ด ํ’€์ด

stack = [] # number list 
for num in range(int(input())):
    n = int(input())
    if n == 0: # if n == 0
        stack.pop(-1) # delete recent number
    else: # or
        stack.append(n) # add

print(sum(stack))

profile
Engineer

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