์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ”ฅ/๋ฐฑ์ค€

๋ฐฑ์ค€ 10828๋ฒˆ : ์Šคํƒ(S4)

23.8 2023. 12. 25. 00:54
๋ฐ˜์‘ํ˜•

 

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

 

10828๋ฒˆ: ์Šคํƒ

์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€

www.acmicpc.net

 

 

โœจ ๋ฌธ์ œ

์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ช…๋ น์€ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€์ด๋‹ค.

  • push X: ์ •์ˆ˜ X๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • pop: ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • size: ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • empty: ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • top: ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

โœจ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

 

- ๋ฌธ์ œ์— ์ ํ˜€์žˆ๋“ฏ์ด, ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

- ํŒŒ์ด์ฌ์˜ list๋ฅผ ์ด์šฉํ•ด์„œ stack์„ ์ •์˜ํ•œ๋‹ค.

 

- push๋Š” ํŒŒ์ด์ฌ์˜ append ํ•จ์ˆ˜, pop์€ pop ํ•จ์ˆ˜, size๋Š” len ํ•จ์ˆ˜, empty๋Š” `if stack`, top์€ index -1๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 

- ๋‹จ, ์Šคํƒ์— ์ •์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

 

 

 

โœจ ์ฝ”๋“œ

import sys

def input():
    return sys.stdin.readline().rstrip()

def main():
    N = int(input())
    print(N)
    stack = []

    for _ in range(N):
        command = input().split()
        num = 0
        if len(command) == 2:
            num = command[1]
        command = command[0]

        len_stack = len(stack)

        if command == 'push':
            stack.append(num)
        elif command == 'pop':
            if len_stack == 0:
                print(-1)
            else :
                print(stack.pop())
        elif command =='size':
            print(len_stack)
        elif command == 'empty':
            if len_stack == 0:
                print(1)
            else :
                print(0)
        elif command == 'top' :
            if len_stack == 0:
                print(-1)
            else :
                print(stack[len_stack-1])
728x90
๋ฐ˜์‘ํ˜•