99(심화) - Week02 회고(WIL)

3917 단어 회고항해항해

What I did

  • 해쉬 테이블
  • 스택

What I learned

  • 해쉬 테이블

    • Hash Table? 키(Key)에 데이터(Value)를 저장하는 데이터 구조
    • Key를 통해 데이터를 바로 받아올 수 있음 → 속도가 획기적으로 빨라짐
    • 보통 배열로 미리 Hash Table 사이즈만큼 생성 후 사용(공간과 탐색 시간을 맞바꾸는 기법)
    • 해쉬테이블 사용 예시
      hash_table = list([i for i in range(10)])
      print(hash_table) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

파이썬에서는 해쉬를 별도로 구현할 필요 없음 - 딕셔너리 타입을 사용하면 되기 때문

  • 스택
    • 스택(stack)은 데이터를 임시 저장할 때 사용하는 자료구조로,
      데이터 의 입력과 출력 순서는 후입선출(Last In First Out) 구조이다.
    • 스택 사용 예시
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
stack.pop()
# 3
print(stack)
# [1,2]
  • 큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(First In First Out) 구조이다.
    • 큐 사용 예시
from collections import deque
queue = deque([1,2,3])
queue.appendleft(4)
# deque[4,1,2,3]
queue.popleft()
# 4
print(queue)
# deque[1,2,3]

appendleft(x)와 popleft(x) 메서드는 모두 O(1)의 시간복잡도를 가지기 때문에
list 자료구조의 pop(0)(시간복잡도 O(N))보다 성능이 뛰어나다.

How I've changed

자료구조의 이해

해쉬테이블, 스택, 큐 그대로 이해하려고 하니 이해가 너무 어렵게 느껴졌습니다.
어디서 사용되는지 알면 조금 이해가 빠를거같아서 찾아보면서 이해를 해버렸습니다!?👍🏻

What I will do next week

백준에서 단계별로 풀어보면서 알고리즘과 친해져보겠습니다.

좋은 웹페이지 즐겨찾기