Data Structures and Algorithms (2)

Tony Kim·2021년 8월 7일
0
post-thumbnail

Data Structure and Algorithms (2)

1. 배열 (Array)

  • 장점 : 인덱스를 통한 접근이 용이하다.
  • 단점 :
    1) 미리 최대길이를 지정해야한다.
    2) 데이터의 추가 및 삭제가 어렵다.
    파이썬에서의 배열은 list임!

range를 이용하여 특정 글자를 count하는 함수

dataset = ['James', 'Anthony', 'John', 'Oliver']
counter = 0
for data in dataset:
    for index in range(len(data)):
        if data[index] = 'M':
            counnter += 1

2. 큐 (Queue)

  • FIFO (First In First Out) 이 기본
  • 사용: 멀티테스킹을 위해 프로세스 스케줄링 방식을 구현하기 위해 사용됨. (운영체제 안에서)

1) Queue

import queue
ㅤ
q = queue.Queue()
q.put("anthony")
q.put(20)
q.get()
q.size

2) priority Queue

import Queue
ㅤ
pq = queue.PriorityQueue()
pq.put(10, "Korea")
pq.put(15, "China")
pq.put(3, 1)
pq.get() = (3,1)

3) list를 사용한 Queue 함수

def enqueue(data)
    queue_list.append(data)
ㅤ
def dequeue()
    data = queue_list[0]
    del queue_list[0]
    return data

3. 스택 (Stack)

  • LIFO (Last In First Out) 이 기본
  • 사용: 컴퓨터 내부 프로세스 구조의 함수 동작방식에 사용 (재귀함수와 유사)
  • 장점
    1) 구조가 단순해서 구현이 쉽다.
    2) 데이터 저장 및 읽기가 빠르다.
  • 단점
    1) 데이터 최대개수를 미리 설정해야한다.
    2) 저장공간의 낭비가 발생할 수 있다

1) Stack (list)

data_stack = list()
ㅤ
data_stack.append(1)
data_stack.append(2)
ㅤ
data_stack.pop() = 2

2) list를 활용한 Stack 함수

stack_list = list()
ㅤ
def push(data):
    stack_list.append(data)
ㅤ
def pop():
    data = stack_list[-1]
    del stack_list[-1]
    return data

본 게시글은 fastcampus 이준희강사 수업을 듣고 개인적으로 정리한 내용임을 밝힘.

profile
Back-end-dev

0개의 댓글