ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. 리스트, 스택, 큐, 셋, 딕셔너리
    practice_자료구조 2024. 10. 25. 08:15

    리스트(List), 스택(Stack), 큐(Queue), 셋(Set), 딕셔너리(Dictionary)는 파이썬을 비롯한 프로그래밍에서 자주 사용되는 데이터 구조입니다. 각 데이터 구조의 특징과 사용 예를 살펴보겠습니다.

    1. 리스트(List)

    • 정의: 리스트는 순서가 있는 변경 가능한 시퀀스 데이터 구조입니다. 다양한 타입의 데이터를 저장할 수 있고, 인덱스로 접근 가능합니다.
    • 특징:
      • 인덱스 기반으로 원소에 접근 가능 (0번 인덱스부터 시작)
      • 중복된 값을 허용
      • 크기가 가변적 (동적으로 크기가 변함)
    • 메서드 예시: append(), remove(), insert(), pop(), sort()
    • 예시:
    •  
    my_list = [1, 2, 3, 4, 5]
    my_list.append(6)  # [1, 2, 3, 4, 5, 6]

    2. 스택(Stack)

    • 정의: 스택은 후입선출(LIFO, Last In First Out) 구조로, 가장 나중에 추가된 데이터가 가장 먼저 제거되는 구조입니다.
    • 특징:
      • 데이터를 삽입하거나 제거하는 작업은 스택의 맨 위(top)서만 이루어짐
      • push(삽입)와 pop(삭제) 작업이 주된 연산
    • 메서드 예시: append() (push), pop() (pop)
    • 예시
    •  
    stack = []
    stack.append(10)  # push
    stack.append(20)
    stack.pop()  # 20이 제거됨

     

    3. 큐(Queue)

    • 정의: 큐는 선입선출(FIFO, First In First Out) 구조로, 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조입니다.
    • 특징:
      • 데이터가 한쪽 끝(뒤)에서 삽입되고, 반대쪽 끝(앞)에서 제거됨
      • enqueue(삽입)와 dequeue(삭제) 작업이 주된 연산
    • 메서드 예시: append() (enqueue), pop(0) (dequeue)
    • 예시
    •  
    queue = []
    queue.append(1)  # enqueue
    queue.append(2)
    queue.pop(0)  # dequeue, 1이 제거됨

     

    4. 셋(Set)

    • 정의: 셋은 중복을 허용하지 않고, 순서가 없는 데이터 구조입니다. 집합 연산(교집합, 합집합 등)이 유용하게 사용됩니다.
    • 특징:
      • 중복된 값을 허용하지 않음
      • 순서가 없기 때문에 인덱스로 접근 불가
      • 집합 연산 가능 (union(), intersection(), difference())
    • 메서드 예시: add(), remove(), union(), intersection()
    • 예시
    •  
    my_set = {1, 2, 3, 4}
    my_set.add(5)  # {1, 2, 3, 4, 5}

     

    5. 딕셔너리(Dictionary)

    • 정의: 딕셔너리는 키-값 쌍으로 데이터를 저장하는 구조입니다. 각 키는 고유하며, 이를 통해 값에 접근할 수 있습니다.
    • 특징:
      • 키는 중복될 수 없으며, 값은 중복될 수 있음
      • 순서가 없으며, 키로 값을 조회
      • 키와 값의 쌍으로 데이터를 저장
    • 메서드 예시: get(), keys(), values(), items(), update()
    • 예시:
    •  
    my_dict = {"name": "Ha-jun", "age": 25}
    my_dict["age"] = 26  # 딕셔너리 값 수정

     

    이 각각의 데이터 구조는 특정한 상황에서 더 효율적인 사용이 가능하며, 적절하게 선택하는 것이 중요합니다. 예를 들어, 스택은 후입선출 방식의 문제에서 유용하고, 는 선입선출이 필요한 상황에서 사용됩니다. 리스트는 순서가 중요한 경우, 은 중복을 제거해야 할 때, 딕셔너리는 키-값으로 데이터를 빠르게 조회할 때 주로 사용됩니다

Designed by Tistory.