차밍이

[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 자료구조란? 본문

파이썬/알고리즘

[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 자료구조란?

2021. 2. 5. 22:48
반응형

목차

    자료구조란?

    • 자료의 구조, 데이터의 구조
    • 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다.
    • 코드상으로 얼마나 효율적으로 데이터를 처리하기위해 구조적으로작성하는가를 논하는 것

     

    알고리즘이란?

    • 어떤 문제를 풀기 위한 절차나 방법

     

    자료구조와 알고리즘이 중요한 이유?

    • 어떤 자료구조와 알고리즘을 쓰냐에 따라, 성능이 매우 크게 차이가 발생된다.
    • 프로그래밍을 잘 할 수 있는 기술과 역량을 검증하는 척도로 사용된다.

     

    배열

    배열의 장점

    • 데이터의 시작점만 알면 내부의 데이터들의 순서를 바로 알 수 있다.
    • 순차적인 데이터를 손쉽게 다룰 수 있다.
    • 빠르게 데이터에 접근 가능하다.

    배열의 단점

    • 데이터가 가변적인 경우 추가나 삭제가 쉽지 않음
    • 최대 길이를 미리 지정해야함

     

    큐 (Queue)

    큐의 구조

    • FIFO(First-In, First-Out) 또는 LILO(Last_In, Last-Out) 방식으로 스택(Stack)과 순서가 반대이다.

     

    큐 용어 정리

    • Enqueue: 큐에 데이터를 넣는 기능
    • Dequeue: 큐에서 데이터를 꺼내는 기능

     

    큐가 많이 사용되는 곳

    • 멀티태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용된다. ex 운영체제

     

    파이썬 - enqueue, dequeue 기능 구현하기

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

     

    실제 동작 확인하기

    for index in range(10):
        enqueue(index)
    
    queue_list
    
    >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    for i in range(10):
        dequeue()
        print(queue_list)
    
    >>>
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [2, 3, 4, 5, 6, 7, 8, 9]
    [3, 4, 5, 6, 7, 8, 9]
    [4, 5, 6, 7, 8, 9]
    [5, 6, 7, 8, 9]
    [6, 7, 8, 9]
    [7, 8, 9]
    [8, 9]
    [9]
    []
    반응형

    관련된 글 보기

    Comments