Algorithm/BOJ

๋ฐฑ์ค€(BOJ) 10828๋ฒˆ ์Šคํƒ๋ฌธ์ œ [ํŒŒ์ด์ฌ(python) / ์‹œ๊ฐ„์ดˆ๊ณผ ์—๋Ÿฌ]

DAHLIA CHOI 2021. 6. 28. 00:26

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

 

10828๋ฒˆ: ์Šคํƒ

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

www.acmicpc.net

 

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 10828๋ฒˆ ์Šคํƒ๋ฌธ์ œ

 

 

[๋ฌธ์ œ]

 

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

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

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

 

[์ž…๋ ฅ]

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

 

[์ถœ๋ ฅ]

์ถœ๋ ฅํ•ด์•ผํ•˜๋Š” ๋ช…๋ น์ด ์ฃผ์–ด์งˆ ๋•Œ๋งˆ๋‹ค, ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ฒ˜์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ์„๋•Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์„œ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค....

์ฐพ์•„๋ณด๋‹ˆ๊นŒ input() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒŒ๋œ๋‹ค...์˜ค๋งˆ์ด๊ฐ“..

 

๊ทธ๋ž˜์„œ

 

import sys

count= int(sys.stdin.readline()) ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ด์„œ ์ž…๋ ฅ์„ ๋ฐ›์•˜๋‹ค!! 

 

 

 

1๋ฒˆ ํ’€์ด

class Stack:
    def __init__(self):
        self.items = []
        
    def push(self, val):
        self.items.append(val)
        
    def pop(self):
        try:
            return self.items.pop()
        except IndexError:
            return (-1)
            
    def top(self):
        try:
            return self.items[-1]
        except IndexError:
            return (-1)
            
    def __len__(self):
        return len(self.items)
    
    def isEmpty(self):
        return len(self) == 0
    
    
import sys

count= int(sys.stdin.readline())

S = Stack()

for i in range(count):
    words = sys.stdin.readline().split()
    
    if words[0] == 'push':
        S.push(int(words[1]))
        
    elif words[0] == 'pop':
        print(S.pop())
    
    elif words[0] == 'size':
        print(S.__len__())
        
    elif words[0] == 'empty':
        if S.__len__() == 0: print(1)
        else: print(0)
    
    elif words[0] == 'top':
        print(S.top())

 

 

2๋ฒˆ ํ’€์ด

count = int(input())
s = []

for i in range(count):
    words = input().split()
    
    if words[0] == 'push':
        s.append(words[1])
    
    elif words[0] == 'pop':
        if s: print(s.pop())
        else: print(-1)
    
    elif words[0] == 'size':
        print(len(s))
    
    elif words[0] == 'empty':
        if s: print(0)
        else : print(1)
    
    elif words[0] == 'top':
        if s : print(s[-1])
        else : print(-1)