본문 바로가기

자료구조13

Python 자료구조&알고리즘 - 해쉬 테이블(Hash Table) 1. 해쉬 테이블(Hash Table) 키(key)에 데이터(value)를 저장하는 데이터 구조 파이썬에서는 딕셔너리(dick)타입이 해쉬 테이블의 예 key를 통해 데이터를 바로 찾을 수 있으므로 검색 속도가 빠름 보통 배열로 미리 Hash Table 사이즈 만큼 생성 후에 사용 2. 알아둘 용어 해쉬(Hash) : 임의의 값을 고정 길이로 변환하는 것 해쉬 테이블(Hash Table): 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해쉬 함수(Hashing Function) : key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값(Hash Values) 또는 해쉬 주소(Hash Address) : key를 해싱 하무로 연산해서 해쉬 값을 알아내고 이를 기반으로 해쉬 테이.. 2023. 1. 30.
Python 자료구조&알고리즘 - 스택(stack) 1. 스택(stack) 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 구조 LIFO(Last Input First Out) 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 1-1. 스택의 구조 스택은 LIFO 또는 FILO 데이터 관리 방식 스택의 활용 : 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 기능 push() : 데이터를 스택에 쌓기 pop() : 데이터를 스택에서 꺼내기 1-2. 스택의 장점 구조가 단순해서 이해와 구조가 쉬움 데이터 저장/읽기 속도가 빠름 데이터 최대 개수를 미리 정해야 함(파이썬의 쟝우 재귀함수는 1000번까지만 호출이 가능) 저장 공간의 낭비가 발생할 수 있음(미리 최대 개수만큼 저장공간을 미리 확보하기 때문) 스택은 단순하고 빠른 성능을 위해 사용하므로 보통 배열 .. 2023. 1. 27.
Python 알고리즘&자료구조 - 큐(Queue) 1. 큐(Queue) 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 FIFO(First-In, First-out) 줄을 서는 행위와 유사 1-1. 큐의 사용 멀티테스킹을 위한 프로세스 스케쥴링 방식을 구현(운영체제) 푸시메세지 1-2. 큐의 용어 Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에 데이터를 꺼내는 기능 비쥬얼고 [https://visualgo.net/en/list?slide=1] 1-3. queue 라이브러리 활용 Queue(): 가장 일반적인 큐 자료구조를 생성 LifeQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조(스택) PriorityQueue() : 데이터마다 우선순위를 넣어서 우선순위가 높은 순으로 데이터를 출력 ✔ 일반적인 Queue ✔ Pr.. 2023. 1. 26.
Python 자료구조&알고리즘 (배열) - 배열에서 전체 이름안에 'M'이 몇번 나왔는지 빈도수 1. 배열 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 자료구조 파이썬 리스트 타입은 배열 기능을 제공 1-1. 배열이 필요한 이유 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 빠른 접근이 가능(인덱스 번호로 접근시) 1-2. 배열의 단점 데이터의 추가/삭제가 어렵다 미리 최대 길이를 설정해야 함 문제 dataset 배열에서 전체 이름안에 'M'이 몇번 나왔는지 빈도수를 출력해보자 dataset = ['Braund, Mr. Owen Harris', 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)', 'Heikkinen, Miss. Laina', 'Futrelle, Mrs. Jacques Heath (L.. 2023. 1. 25.