본문 바로가기

전체 글264

[코딩 + 알고리즘 완주반] 13일차. 해쉬 테이블 (Hash Table) # 해쉬 구조 해쉬 테이블: 키에 데이터를 저장하는 데이터 구조 키를 통해 바로 데이터를 받아올 수 있으므로 속도가 획기적으로 빨라짐 ex) 파이선 딕셔너리 (파이썬에서는 해쉬를 별도 구현할 필요없음) 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 ( 공간과 탐색을 맞바꾸는 기법) # 알아둘 용어 해쉬 (Hash) : 임의 값을 고정 길이로 변환하는 것 해쉬 테이블 (Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수 (Hashing Function) : 키에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값 (Hash Value ) 또는 해쉬 주소(Hash Address) : 키를 해싱 함수로 연산해서 해쉬 값을 알아내고, 이를 .. 2021. 3. 27.
[코딩 + 알고리즘 완주반] 13일차. 시간복잡도 # 알고리즘 시간 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘이 다양함 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해 # 알고리즘 복잡도 계산 항목 시간 복잡도 : 알고리즘 실행 속도 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 # 알고리즘 시간 복잡도의 주요 요소 입력의 크기가 커지면 커질수록 반복문이 알고리즘 수행시간 지배 # 알고리즘 성능 표기법 Big O (빅 오) 표기법 : 최악의 시행 시간을 표기 오메가 표기법 : 최상의 실행 시간을 표기 세타 표기법 : 평균 실행 시간을 표기 # Big O (빅 오) 표기법 O(n) 입력에 따라 결정되는 시간 복잡도 함수 O(𝑙𝑜𝑔𝑛)의 베이스는 2- log 2 n O(1) < O(𝑙𝑜𝑔𝑛) < O(n) < O(n𝑙𝑜𝑔𝑛) <.. 2021. 3. 27.
[코딩 + 알고리즘 완주반] 12일차. 스택, 링크드 리스트 # 스택(Stack) 데이터를 제한적으로 접근할 수 있는 구조 - 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 구조 LIFO(Last In First Out) # 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 # 주요 기능 -push() : 데이터를 스택에 넣기 -pop() : 데이터를 스택에서 꺼내기 # 스택 구조 프로세스 실행 구조를 스택과 비교해서 이해 # 스택의 장단점 장점 : 구조가 단순해서 구현이 쉽다 더이터 저장/읽기 속도 빠르다 단점 : -데이터 최대 개수를 미리 정해야한다. 저장공간의 낭비가 발생할 수 있음 # 리스트 변수로 스택 구현해보기 stack_list = list() def push(data): stack_list.. 2021. 3. 27.
[LEET CODE] 232. Implement Queue using Stacks # Problem Implement a first in first out (FIFO) queue using only two stacks. The implemented queue should support all the functions of a normal queue (push, peek, pop, and empty). Implement the MyQueue class: void push(int x) Pushes element x to the back of the queue. int pop() Removes the element from the front of the queue and returns it. int peek() Returns the element at the front of the queu.. 2021. 3. 26.
[LEET CODE] 225. Implement Stack using Queues # Problem Implement a last in first out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal queue (push, top, pop, and empty). Implement the MyStack class: void push(int x) Pushes element x to the top of the stack. int pop() Removes the element on the top of the stack and returns it. int top() Returns the element on the top of the stack. boolean.. 2021. 3. 26.
[코딩 + 알고리즘 완주반] 11일차. 배열, 큐 # 꼭 알아둬야 할 자료구조 - 배열 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 파이썬에서는 리스트 타입이 배열 기능을 제공하고 있음 장점 - 빠른 접근 가능 단점 - 데이터 추가/삭제가 어렵다 # 파이썬과 배열 파이썬 리스트 활용 # 대표적인 데이터 구조 : 큐 FIFO ( First in First Out) ( 줄을 서는 것과 유사) LILO ( Last In Last Out) # 용어 enqueue : 데이터를 넣는 기능 dequeue : 데이터를 빼는 기능 # 파이썬 큐 라이브러리( import queue ) Queue() : 가장 일반적인 큐 자료 구조 - put, get, qsize LifoQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조(스택구조) - p.. 2021. 3. 25.
반응형