๋ฐฑ์ค€ | Baekjoon

[๋ฐฑ์ค€][10828] ์Šคํƒ | ํŒŒ์ด์ฌ

sungkshon 2024. 5. 6. 12:14
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/10828

๐Ÿ‘‰ ๋ฌธ์ œ ๋ถ„์„

์Šคํƒ์—์„œ push, pop, size, empty, top์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ

 

๐Ÿ‘‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

pushํ•จ์ˆ˜๋Š” append๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

stack์˜ ๊ธธ์ด๋กœ size ์ถœ๋ ฅ

stack[-1]๋กœ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅ

 

๐Ÿ‘‰ ์ฝ”๋“œ

import sys

stack = []

x = int(sys.stdin.readline())
for i in range(x):
    y = sys.stdin.readline().split()
    if y[0] == "push":
        stack.append(y[1])
    
    elif y[0] == "pop":
        if len(stack) == 0:
            print(-1)
        else:
            print(stack.pop())

    elif y[0] =="size":
        print(len(stack))

    elif y[0] == "empty":
        if len(stack) != 0:
            print(0)
        else:
            print(1)

    elif y[0] == "top":
        if len(stack) != 0:
            print(stack[-1])
        else:
            print(-1)

 

๐Ÿ‘‰ ํ‹€๋ฆฐ ์ด์œ 

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ

 

๐Ÿ‘‰  ํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ˆ˜์ • or ๋‹ค๋ฅธ ํ’€์ด

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋กœ ์ธํ•ด, input()์„ sys.stdin.readline()๋กœ ๋ฐ”๊ฟ” ์ฃผ์—ˆ๊ณ , ์—ฌ์ „ํžˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ

top๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ• ๋•Œ, stack.top()๋Œ€์‹  stack[-1]์œผ๋กœ ํ•˜์˜€๋”๋‹ˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

 

๐Ÿ‘‰ ๋А๋‚€์  or ๊ธฐ์–ตํ• ์ •๋ณด

์‹œ๊ฐ„๋‹จ์ถ•์„ ์œ„ํ•ด input()๋Œ€์‹  sys.stdin.readline()์„ ์‚ฌ์šฉ

๋ฐ˜์‘ํ˜•