Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

자료구조 및 알고리즘

이 저장소는 다양한 알고리즘과 데이터 구조에 관한 파이썬 코드를 담고 있습니다. 아래 표에서 각 파일에 대한 간단한 설명을 확인할 수 있습니다.

파일명 개념 시간 복잡도 적용 예
LCS_DP.py LCS(Longest Common Subsequence) 알고리즘은 두 문자열에서 가장 긴 공통 부분 문자열의 길이를 찾는 알고리즘입니다. 동적 계획법(DP)를 사용하여 문제를 해결합니다. O(m*n) (m과 n은 각각 두 문자열의 길이) DNA 서열 정렬, 텍스트 비교 및 유사도 측정
LIS_DP.py LIS(Longest Increasing Subsequence) 알고리즘은 주어진 배열에서 가장 긴 증가하는 부분 수열의 길이를 찾는 알고리즘이다. 동적 프로그래밍 방법을 사용하여 이전에 계산한 부분 문제의 결과를 저장하고 재사용함으로써 효율적으로 문제를 해결한다. O(n²) 주어진 배열에서 최장 증가 부분 수열의 길이를 찾는 문제, 시퀀스 정렬 문제에서 최적 부분 구조 찾기 등
bellmanford.py 벨만-포드 알고리즘은 그래프에서 주어진 시작 노드로부터 다른 모든 노드까지의 최단 경로를 찾는 알고리즘이다. 음수 가중치를 가진 간선도 처리할 수 있으나, 음수 사이클이 있는 경우에는 알고리즘이 작동하지 않는다. O(V*E) (V: 노드의 수, E: 간선의 수) 그래프에서 단일 출발점 최단 경로 문제, 음수 가중치가 있는 그래프에서의 최단 경로 문제 (단, 음수 사이클이 없어야 함)
bfs.py BFS(너비 우선 탐색)는 그래프나 트리를 탐색하는 알고리즘 중 하나로, 루트 노드(혹은 다른 임의의 노드)에서 시작하여 인접한 노드들을 먼저 탐색하는 알고리즘입니다. 큐(Queue)를 사용하여 구현할 수 있으며, 아래 코드는 큐를 사용한 방법으로 BFS를 구현한 예입니다. O(V + E) (V: 정점의 개수, E: 간선의 개수) 최단 경로 찾기, 그래프의 연결성분 찾기
binary_search.py 이진 탐색 알고리즘은 정렬된 리스트에서 특정 원소를 빠르게 찾기 위한 알고리즘입니다. 이 알고리즘은 리스트의 중간값을 기준으로 찾고자 하는 값이 중간값보다 큰지 작은지를 판단하며, 이를 반복하여 원하는 값을 찾습니다. O(log n) 정렬된 리스트에서 특정 원소 찾기
combination_generation.py 조합 생성 알고리즘은 주어진 리스트에서 n개의 원소를 선택하는 모든 가능한 조합을 생성하는 알고리즘입니다. 작성 예정 데이터 분석, 통계학에서 조합의 경우의 수를 구할 때 사용
dfs_recursion.py 깊이 우선 탐색(DFS)는 그래프나 트리를 탐색하는 알고리즘 중 하나로, 시작 노드에서 시작하여 더 이상 방문할 노드가 없을 때까지 깊게 탐색하는 알고리즘입니다. 이 코드는 재귀를 사용하여 구현되었습니다. 작성 예정 그래프 탐색, 경로 찾기
dfs_stack.py 깊이 우선 탐색(DFS)는 그래프나 트리를 탐색하는 알고리즘 중 하나로, 시작 노드에서 시작하여 더 이상 방문할 노드가 없을 때까지 깊게 탐색하는 알고리즘입니다. 이 코드는 스택을 사용하여 구현되었습니다. 작성 예정 그래프 탐색, 경로 찾기
dijkstra.py 다익스트라 알고리즘은 가중치가 있는 그래프에서 시작 노드로부터 다른 모든 노드까지의 최단 경로를 찾는 알고리즘입니다. 작성 예정 최단 경로 찾기
fibonacci_recursion.py 피보나치 수열을 재귀를 사용하여 구현한 코드입니다. O(2^n) 수열, 재귀 연습
fibonacci_recursion_memoization.py 피보나치 수열을 메모이제이션을 사용하여 최적화한 코드입니다. O(n) 수열, 동적 프로그래밍 연습
combination_generation.py 주어진 리스트에서 n개의 원소를 선택하는 모든 가능한 조합을 생성합니다. 작성 예정 데이터 분석, 통계학에서 조합의 경우의 수를 구할 때 사용
dfs_recursion.py 그래프나 트리를 깊이 우선 탐색하는 알고리즘입니다. 이 코드는 재귀를 사용하여 구현되었습니다. 작성 예정 그래프 탐색, 경로 찾기
dfs_stack.py 그래프나 트리를 깊이 우선 탐색하는 알고리즘입니다. 이 코드는 스택을 사용하여 구현되었습니다. 작성 예정 그래프 탐색, 경로 찾기
dijkstra.py 시작 노드로부터 그래프 내의 다른 모든 노드까지의 최단 경로를 찾는 알고리즘입니다. 작성 예정 최단 경로 찾기
fibonacci_recursion.py 피보나치 수열을 재귀를 사용하여 계산합니다. O(2^n) 수열, 재귀 연습
fibonacci_recursion_memoization.py 피보나치 수열을 메모이제이션을 사용하여 최적화하여 계산합니다. O(n) 수열, 동적 프로그래밍 연습
interval_sum.py 주어진 리스트의 연속된 부분 리스트의 합 중에서 가장 큰 값을 찾는 알고리즘입니다. 작성 예정 최대 부분 배열 문제
list_element_sum.py 리스트의 모든 원소의 합을 계산합니다. 작성 예정 리스트 연산
merge_list_to_dictionary.py 두 개의 리스트를 병합하여 사전 형태로 반환합니다. 작성 예정 데이터 구조 변환
permutation_generation.py 주어진 리스트의 원소로 만들 수 있는 모든 순열을 생성합니다. 작성 예정 데이터 분석, 순열의 경우의 수 계산
prime_number_detection.py 주어진 숫자가 소수인지 판별합니다. 작성 예정 수학 문제, 암호화
priority_queue.py 우선순위 큐를 구현하고 사용하는 방법을 보여줍니다. 작성 예정 데이터 처리, 작업 스케줄링
queue.py 큐(Queue) 데이터 구조를 구현하고 사용하는 방법을 보여줍니다. 작성 예정 데이터 처리, 작업 스케줄링
remove_duplicates.py 리스트에서 중복된 원소를 제거합니다. 작성 예정 데이터 정리
stack.py 스택(Stack) 데이터 구현하고 사용하는 방법을 보여줍니다. 작성 예정 데이터 처리, 작업 스케줄링
eratosthenes_sieve.py 에라토스테네스의 체를 구현하는 방법을 보여줍니다. O(Nlog(logN)) 특정범위의 자연수에서 소수찾기