본문 바로가기
알고리즘이야기/백준

10828번 스택

by 효우너 2020. 5. 30.
728x90
반응형
문제 출처 : https://www.acmicpc.net/problem/10828

 

10828번: 스택

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

www.acmicpc.net


import sys

N=int(input())
result=[]
for i in range(N):
    M=sys.stdin.readline().split()
    if M[0]=='push':
        result.append(M[1])
    elif M[0]=='top':
        if len(result)!=0:
            print(result[-1])
        else:
            print(-1)
    elif M[0]=='size':
        print(len(result))
    elif M[0]=='empty':
        if len(result)==0:
            print(1)
        else:
            print(0)
    elif M[0]=='pop':
        if len(result)!=0:
            print(result.pop())
        else:
            print(-1)

여기서 더 효율적으로(?) 풀려면 함수로 따로 빼서 풀이하는 것이 생각한다..! 문제에 주어진 조건에 따라 스택을 list로 생성한 후 append하거나 len을 통해 길이를 구하거나 pop을 통해 삭제하면 된다! 시간적인 부분에서 실패할 수도 있는데 이제 자연스럽게 input()보다 sys를 사용한다!

728x90
반응형

'알고리즘이야기 > 백준' 카테고리의 다른 글

1260번 DFS와 BFS  (0) 2020.06.10
10430번 나머지  (0) 2020.06.02
2751번 수 정렬하기2  (0) 2020.05.30
2750번 수 정렬하기  (0) 2020.05.30
1920번 수 찾기  (0) 2020.05.24

댓글