📗 Hash dictionary 자료구조를 통해 구현 다음과 같은 때 사용하기 좋음 리스트를 쓸 수 없을 때 빠른 접근 & 탐색이 필요할 때 집계가 필요할 때 - collections.Counter 리스트에 비해 시간복잡도가 매우 빠름 원소를 넣거나
📗 Heap 데이터에서 최대, 최소값을 빠르게 찾고자 고안된 완전 이진 트리 부모 노드 idx = 자식 노드 idx // 2왼쪽 자식 노드 idx = 부모 노드 idx \* 2오른쪽 자식 노드 idx = 부모 노드 idx \* 2 + 1따라서 배열로 구현 시 idx를
📗 Sort O(n²)의 시간 복잡도 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) O(n log n)의 시간 복잡도 병합 정렬(Merge Sort) 퀵 정렬(Quick Sort) 🔔 버
📗 Stack & Queue stack과 queue는 데이터를 임시 저장하기 위해 사용하는 자료구조 stack은 FILO(선입후출) 방식을 따르는 자료구조먼저 들어온 데이터가 나중에 나가는 방식리스트 자료형을 사용해 구현함 \- stack.append(
📗 Brute Force 가능한 모든 경우를 탐색하는 방법정확성은 100% 보장되지만 효율성은 최악임. 따라서 주어진 데이터가 매우 적을 때 사용하는 것이 좋음일반적으로 for & if 문을 활용하거나, BFS/DFS를 활용하는 경우가 대부분임다음의 사항을 고려해보고
📗 DFS & BFS 탐색 알고리즘 DFS와 BFS는 그래프 탐색 알고리즘에 속하며, 그래프의 모든 꼭짓점을 방문하는 알고리즘을 의미함 트림 탐색은 그래프 탐색의 특수 일종이며, 방문한 노드는 다시 방문하지 않음 🔔 Graph 그래프는 노드와
현재 상황에서 지금 가장 좋은 것만 고르는 방법 = 매 순간 가장 좋아 보이는 것을 선택현재의 선택이 나중에 미칠 영향은 고려하지 않음기준에 따라 좋은 것을 선택하는 알고리즘이므로, '가장 큰 순서대로' 또는 '가장 작은 순서대로'와 같은 기준을 제시함greedy 알고
greedy method를 이용해 네트워크(가중치를 간선에 할당한 그래프)의 모든 정점을 최소 비용으로 연결하는 최적 해답을 구하는 알고리즘최소 신장 트리를 구하는 알고리즘 중 하나로, 그래프의 모든 노드를 연결하는 간선의 부분 집합 중에서 가중치의 합이 최소인 트리를