99(심화) - Week02 회고(WIL)
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 = []
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
백준에서 단계별로 풀어보면서 알고리즘과 친해져보겠습니다.
Author And Source
이 문제에 관하여(99(심화) - Week02 회고(WIL)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@funnykyeon/항해99심화-Week02-회고저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)