ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 10828번 : 스택 (Python, 파이썬) - 자료구조 스택(Stack)
    카테고리 없음 2019. 1. 3. 01:04

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

    자료구조 중 스택(Stack) 개념을 다루고 싶어 이번 문제를 선정해서 풀어보았다. stack의 사전적 의미가 '쌓다', '더미' 인 것처럼, 자료구조로서의 스택 또한 의미가 비슷하다. 자료를 차례대로 쌓아 자료의 더미를 이룬다. 더미에서 자료를 제거할 때에는 임의로 제거하는 것이 아니라 쌓은 순서의 역순으로 제거한다.

    예를 들어, 한 박스에 박스 입구 면적에 딱 맞는 벽돌들을 차례대로 담는 경우, 모든 벽돌을 다시 꺼내는 방법은 벽돌을 담은 순서의 역순으로 꺼내는 수밖에 없다.

    이런 스택의 개념을 참고해서 코드를 짜보았다.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    class stack:

    def __init__(self):

    self.items = []

    def push(self, item):

    self.items.append(item)

    def pop(self):

    if self.items == []:

    return -1

    else:

    return self.items.pop()

    def size(self):

    return len(self.items)

    def empty(self):

    if self.items == []:

    return 1

    else:

    return 0

    def top(self):

    if self.items == []:

    return -1

    else:

    return self.items[-1]

    stk = stack()

    N = int(input())

    for _ in range(N):

    cmd = input().split(' ')

    if cmd[0] == 'push':

    stk.push(cmd[1])

    elif cmd[0] == 'pop':

    print(stk.pop())

    elif cmd[0] == 'size':

    print(stk.size())

    elif cmd[0] == 'empty':

    print(stk.empty())

    elif cmd[0] == 'top':

    print(stk.top())


Designed by Tistory.