본문 바로가기

알고리즘&자료구조

1주차 - 스택 & 큐

728x90

1. 스택(Stack; 쌓다)

  • push : 입력
  • peek : 가장 마지막으로 입력된 값 확인
  • pop  : 가장 마지막으로 입력된 값 꺼내오기

 

  • Stack 함수 직접 구현하기
    • # Stack 함수 직접 구현하기
      class Stack(list):
      	push = list.append
          
          def peek(self):
          	return self[-1]
              
      s = Stack
      s.push(1)
      s.push(2)
      s.push(3)
      
      print("my stack is: ", s)
      # my stack is: [1, 2, 3]
      
      print("popped value is: ", s.pop())
      # popped value is: 3
      
      print("my stack is: ", s)
      # my stack is: [1, 2] 
      
      print("peeked value is: ", s.peek())
      # peeked value is: 2
      
      print("my stack is: ", s)
      # my stack is: [1, 2]
  • List를 스택으로.
    • # list를 스택으로 활용
      
      s = []
      
      s.append(1)
      s.append(2)
      s.append(3)
      
      print("my stack is: ", s)
      # my stack is: [1, 2, 3]
      
      print("popped value is: ", s.pop())
      # popped value is: 3
      
      print("my stack is: ", s)
      # my stack is: [1, 2]
      
      print("peeked value is: ", s[-1])
      # peeked value is: 2
      
      print("my stack is: ", s)
      # my stack is: [1, 2]

 

2. 큐(Queue; 일이 처리되기를 기다리는 리스트)

  • put   : 입력
  • peek : 가장 먼저 입력된 값 확인
  • get   : 가장 먼저 입력된 값 꺼내오기

 

  • Queue 함수 직접 구현하기
    • class Queue(list):
      	put = list.append
          
          def peek(self):
          	return self[0]
              
          def get(self):
          	return self.pop(0)
              
      q = Queue()
      q.put(1)
      q.put(2)
      q.put(3)
      
      print("my queue is: ", q)
      # my queue is: [1, 2, 3]
      
      print("removed value is: ", q.get())
      # removed value is: 1
      
      print("my queue is: ", q)
      # my queue is: [2, 3]
      
      print("peeked value is: ", q.peek())
      # peeked value is: 2
      
      print("my queue is: ", q)
      # my queue is: [2, 3]
  • Queue 클래스 import 
    • from queue import Queue
      
      q = Queue()
      q.put(1)
      q.put(2)
      q.put(3)
      
      print("my queue is: ", q)
      # my queue is: [1, 2, 3]
      
      print("removed value is: ", q.get())
      # removed value is: 1
      
      print("my queue is: ", q)
      # my queue is: [2, 3]
      
      print("peeked value is: ", q.peek())
      # peeked value is: 2
      
      print("my queue is: ", q)
      # my queue is: [2, 3]
  • List를 큐로 
    • # list를 큐로 활용
      
      q = []
      
      q.append(1)
      q.append(2)
      q.append(3)
      
      print("my queue is: ", q)
      # my queue is: [1, 2, 3]
      
      print("removed value is: ", q.pop(0))
      # removed value is: 1
      
      print("my queue is: ", q)
      # my queue is: [2, 3]
      
      print("peeked value is: ", q[0])
      # peeked value is: 2
      
      print("my queue is: ", q)
      # my queue is: [2, 3]