ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 백준 10828 스택
    Python_알고리즘 2021. 7. 18. 02:39
    문제 바로가기

       문제분석   

    # 파이썬은 스택 자료구조를 따로 제공하지 않고, 기본 클래스인 리스트나 링크드리스트를 통해 구현한다.
    # push X: 정수 X를 스택에 넣는 연산이다.
    # pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
    # size: 스택에 들어있는 정수의 개수를 출력한다.
    # empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
    # top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

    # 명령어가 split으로 나눈 인덱스 0번에 있다면 해당 명령을 구현한다.

     

     

       문제풀이   

    import sys
    
    n = int(sys.stdin.readline())
    
    stack = []  # 정수를 저장할 빈 리스트(스택) 초기화
    
    for _ in range(n):  # 주어지는 명령어 수만큼 반복 한다.
        command = sys.stdin.readline().split()  
    
        if command[0] == 'push':
            stack.append(command[1])
    
        elif command[0] == 'pop':
            if not stack:
                print(-1)
            else:
                print(stack.pop())
    
        elif command[0] == 'size':
            print(len(stack))
    
        elif command[0] == 'empty':
            if not stack:
                print(1)
            else:
                print(0)
    
        elif command[0] == 'top':
            if not stack:
                print(-1)
            else:
                print(stack[-1])

    # 정수를 저장할 빈 리스트(스택) 초기화 한다.

    # 주어지는 명령어 수만큼 반복 한다.

    # 명렁어 입력을 받는데, push 같은 경우는 넣을 값도 들어오니까 공백을 기준으로 명렁어와 그 명령의 결과로 들어갈 값을 나눠서 받는다.

    # pop과 top은 조건이 있으므로 이중 조건문으로 처리한다.

    # 스택은 last in first out이니까 가장 마지막 인덱스가 제일 위에 있다.

     

     

     

     

     

    댓글

Designed by Tistory.