내 맴

[ BAEKJOON ] No. 10828 스택 본문

Algorithm/Baekjoon 문제풀이

[ BAEKJOON ] No. 10828 스택

뺙사우르수 2020. 3. 31. 15:50
728x90

문제 )

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

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

www.acmicpc.net

 

오류 해결 )

다 코딩하고 나서 제출하니깐  시간초과 되었다고 떴다 

시간초과 오류 해결법을 알아보니깐 

input 대신에 sys모듈의 sys.stdin을 사용해주어야 한다고 한다. 

 

- python code

import sys
input= sys.stdin.readline

def menu(command):
    if command[0]=='push':
        push(command[1])
    elif command[0]=='empty':
        empty()
    elif command[0]=='pop':
        Pop()
    elif command[0]=='size':
        Size()
    elif command[0]=='top':
        top()  

# push X
def push(X):
    stack.append(X)

# pop
def Pop():
    if len(stack)==0:
        print(-1)
    else:
        num=stack.pop()
        print(num)

# size
def Size():
    print(len(stack))

# empty
def empty():
    if len(stack)==0:
        print(1)
    else:
        print(0)
# top
def top():
    if len(stack)==0:
        print(-1)
    else:
        print(stack[len(stack)-1])


stack =[]
N=int(input())
for i in range(N):
    command =input().strip().split()
    menu(command)

 

728x90