BFS, DFS 알고리즘 [알고리즘 이론]
·
알고리즘/알고리즘 이론
BFS(Breadth-First Search, 너비 우선 탐색)와 DFS(Depth-First Search, 깊이 우선 탐색)에 대해 설명드리겠습니다. 이 두 알고리즘은 그래프를 탐색하는 가장 기본적인 방법입니다. 그래프는 노드(정점)들과 그 노드들을 연결하는 간선들로 구성되어 있습니다. BFS와 DFS는 이러한 그래프의 모든 노드를 방문하는 방법 중 하나입니다. BFS(Breadth-First Search, 너비 우선 탐색) BFS는 시작 노드에서 시작하여 인접한 노드를 먼저 탐색하는 방식입니다. 이 알고리즘은 큐를 사용하여 구현할 수 있습니다. BFS는 다음과 같은 단계로 진행됩니다: 탐색을 시작할 노드를 큐에 삽입하고 방문했다고 표시합니다. 큐에서 노드를 하나 꺼내 해당 노드의 인접 노드 중 방문하..
카데인 알고리즘(Kadane's Algorithm) Python [알고리즘 이론]
·
알고리즘/알고리즘 이론
학교 과제문제를 보고 고군분투하다가 알게 된 알고리즘입니다. 카데인 알고리즘(Kadane's Algorithm)은 주어진 배열 내에서 최대 연속 부분합(Subarray Sum)을 찾는 알고리즘입니다. 이 알고리즘은 동적 프로그래밍의 한 형태로 볼 수 있으며, 간단하면서도 효율적으로 문제를 해결할 수 있습니다. 음수와 양수가 혼합된 배열에서도 최대 연속 부분합을 O(n)의 시간 복잡도로 찾을 수 있습니다. 작동 원리 카데인 알고리즘의 기본 아이디어는 각 단계에서 "현재까지의 최대 부분합"과 "현재 원소를 포함한 최대 부분합"을 비교하는 것입니다. 이를 통해, 각 위치에서 끝나는 최대 부분합을 찾고, 이 중 최댓값을 최종 결과로 사용합니다. 알고리즘 절차 초기화: 최대 부분합(max_sum)과 현재 부분합(..
스택 큐 이론 [python]
·
알고리즘/알고리즘 이론
스택(Stack)은 삽입과 삭제연산을 후입선출 LIFO (Last In First Out) : 나중에 들어간 것이 제일 먼저 나온다. 이런 특징을 가지고 있습니다. Python에서는 삽입 시에는 'append()' 명령어를 사용하고 삭제연산을 수행할 시에는 'pop()' 명령어를 사용합니다. 파이썬에서 스택을 구현할 때에는 간편하게 리스트를 사용하면 됩니다. 예시로 한번 확인해 볼까요? Stack = [] print(Stack) # 출력값은 빈 배열이 출력된다. 출력은 어떻게 나올까요? 이렇게 빈 리스트가 출력되었습니다. append()와 pop를 사용해 봅시다. Stack = [1, 2, 3, 4, 5] Stack.append(6) Stack.append(7) Stack.pop() print(Stack..
컴공편입생 공부일기
'알고리즘/알고리즘 이론' 카테고리의 글 목록