본문 바로가기
Algorithm

[자료구조/스택] 백준 10828 스택 - 파이썬(Python)

by jangThang 2023. 7. 17.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    10828번: 스택

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

    www.acmicpc.net

     

     

    2. 문제 풀이

    - push X: 정수 X를 스택에 넣는 연산
    - pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력 (빈 스택이면 -1 출력)
    - size: 스택에 들어있는 정수의 개수 출력
    - empty: 스택이 비어있으면 1, 아니면 0을 출력
    - top: 스택의 가장 위에 있는 정수를 출력 (빈 스택이면 -1 출력)

     스택을 구현하는 문제입니다. 

     

    2022.02.10 - [Algorithm] - [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조

     

    [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조

    [ Contents ] 1. 스택(Stack) 스택(Stack): 후입선출(Last-in-First-out). 가장 최근에 들어간 자료부터 꺼내는 자료구조 스택은 말 그대로 쌓는(stack) 자료 구조입니다. 아래서부터 차곡차곡 쌓은 다음, 위에서

    star7sss.tistory.com

      스택 자료구조에 대한 설명은 위 링크를 참조해주시기 바랍니다.

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    
    N = int(input())
    stack = []
    for _ in range(N):
        command = input().rstrip()
        
        #push
        if command[:4] == 'push':
            stack.append(int(command[5:]))
        
        #pop
        elif command == 'pop':
            if len(stack)==0:
                print(-1)
            else:
                print(stack.pop())
        
        #size
        elif command == 'size':
            print(len(stack))
    
        #empty
        elif command == 'empty':
            print(1 if len(stack)==0 else 0)
        
        #top
        elif command == 'top':
            if len(stack)==0:
                print(-1)
            else:
                print(stack[-1])
                
        #print(command)
        #print(stack)

     스택만 알고 있다면 구현은 쉽습니다. 파이썬에서는 리스트를 통해서 스택을 간단히 구현할 수 있습니다.

     list의 pop 메서드는 stack의 pop 연산과 동일하며, 스택의 정수 개수는 len 함수로 계산합니다.

     

    star가 되고나서 Tistory

    반응형

    댓글