시간 복잡도 & 공간 복잡도
[Algorithm] 시간 복잡도 & 공간 복잡도
❕ 시간 복잡도입력에 대해 총 얼마나 오래 걸리는 지를 의미한다. 알고리즘이 진행되면서 연산되는 횟수이다. 빅오 표기법을 사용하여 표현하는데, 빠르게 증가하는 항만 고려하여 표기한다.ar
dmaolon00.tistory.com
탐욕(그리디) 알고리즘
[Algorithm] 탐욕(그리디) 알고리즘 || Greedy Algorithm
📌 그리디 알고리즘이란?Greedy란 '탐욕스러운'이라는 뜻으로, 탐욕법이나 욕심쟁이 알고리즘이라고도 한다. 그리디 알고리즘은 매 순간 가장 좋은 것을 선택하는 알고리즘이다. 기준에 따라 좋
dmaolon00.tistory.com
DP(Dynamic Programming), 동적 계획법
[Algorithm] DP(Dynamic Programming), 동적 계획법
다이나믹 프로그래밍(Dynamic Programming)은 동적 계획법이라고도 불린다. 이 알고리즘은 똑같은 연산을 계속 반복하지 않고, 한 번의 풀이만으로 해결하고자 하는 알고리즘이다. 큰 문제 하나를 여
dmaolon00.tistory.com
DFS와 BFS
[Algorithm] DFS와 BFS || Depth-First & Breadth-First Search
❕ 인접 행렬인접 행렬은(Adjacency Matrix)로 2차원 배열을 이용하여 그래프의 연결 관계를 표현하는 방식이다.INF = 999999999 graph = [ [0, 7, 5], [7, 0, INF], [5, INF, 0] ] print(graph) ❕ 인접 리스트(Adjacency List)
dmaolon00.tistory.com
조합과 순열
[Algorithm/Python] 파이썬 itertools에서 combinations, permutations를 사용하지 않고, 조합과 순열 구
파이썬에서는 순열과 조합을 간단하게 바로 구해볼 수 있다. 그러나, itertools가 기억이 나지 않는 경우를 대비하여 순열과 조합을 직접 구현해보도록 하자. 📌 itertools 패키지의 combinations, permutat
dmaolon00.tistory.com
선택 정렬(Selection Sort)
[Algorithm/Python] 선택 정렬(Selection Sort)이란? || Sort
📌 선택 정렬(Selection Sort)그림을 보면, 파란색으로 칠해진 수들 중 가장 작은 수를 골라, 빨간색으로 칠해진 수와 바뀌는 것을 확인해볼 수 있다. 이처럼, 선택 정렬은 가장 작은 수를 차례대로
dmaolon00.tistory.com
삽입 정렬(Insertion Sort)
[Algorithm/Python] 삽입 정렬(Insertion Sort)이란? || Sort
📌 삽입 정렬(Insertion Sort)삽입 정렬은 순차적으로 데이터를 확인하며, 적절한 위치에 삽입해주는 정렬 방식이다. 그림을 보면, 인덱스 1번째 수부터 시작하여 차례대로 각자 적절한 위치에 삽입
dmaolon00.tistory.com
퀵 정렬(Quick Sort)
[Algorithm/Python] 퀵 정렬(Quick Sort)이란? || Sort
📌 퀵 정렬(Quick Sort)퀵 정렬(Quick Sort)이란 기준 데이터인 피벗(pivot)을 정하고, 피벗보다 큰 데이터와 작은 데이터의 위치를 변경하는 정렬 방식이다. 피벗이 설정되어 리스트가 분할되는 방법에
dmaolon00.tistory.com
계수 정렬(Count Sort)
[Algorithm/Python] 계수 정렬(Count Sort)이란?? || Sort
📌 계수 정렬(Count Sort)계수 정렬이란, 리스트의 원소의 개수를 세어, 개수만큼 출력하여 정렬하는 방식이다. 예를 들어 arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] 를 정렬해본다고 하자면, 각 원소
dmaolon00.tistory.com
이진 탐색(Binary Search)
[Algorithm/Python] 이진 탐색(Binary Search)란?
들어가며 본 포스팅에서는 순차 탐색(Sequential Search)과 이진 탐색(Binary Search)에 대해 소개합니다. 📌 순차 탐색이란? 순차 탐색(Sequential Search)이란, 특정 데이터를 찾기 위해 앞에서부터 차례대로
dmaolon00.tistory.com
다익스트라 최단 경로 알고리즘
[Algorithm/Python] 다익스트라 최단 경로 알고리즘이란? || dijkstra
들어가며 본 포스팅에서는 다익스트라 최단 경로 알고리즘에 대해 소개합니다. 📌 다익스트라 최단 경로 알고리즘이란? 다익스트라 최단 경로 알고리즘이란, 가장 짧은 경로를 찾기 위한 알고
dmaolon00.tistory.com
플로이드 워셜 알고리즘
[Algorithm/Python] 플로이드 워셜 알고리즘이란?
들어가며 본 포스팅은 플로이드 워셜 알고리즘에 대해 소개합니다. 📌 플로이드 워셜 알고리즘 플로이드 워셜(Floyd-Warshall) 알고리즘이란, 모든 지점에서 다른 모든 지점까지의 최단 경로를 모
dmaolon00.tistory.com
서로소 집합(Disjoint Sets) 알고리즘
[Algorithm/Python] 서로소 집합(Disjoint Sets) 알고리즘이란?
들어가며본 포스팅에서는 서로소 집합과 구현 방식에 대해 소개합니다.📌 서로소 집합이란?서로소 집합(Disjoint Sets)란 공통 원소가 없는 두 집합을 의미합니다. 예를 들어 {1, 2}와 {3, 4}는 서로소
dmaolon00.tistory.com
크루스칼 알고리즘, 최소 신장 트리
[Algorithm/Python] 크루스칼 알고리즘이란? || 최소 신장 트리
들어가며본 포스팅에서는 신장 트리에 대해 그리고 최소 신장 트리 알고리즘인 크루스칼 알고리즘에 대해 소개합니다. 📌 신장 트리란?신장 트리(Spanning Tree)란 하나의 그래프가 있을 때, 모든
dmaolon00.tistory.com
위상 정렬(Topology Sort)
[Algorithm/Python] 위상 정렬(Topology Sort)란?
들어가며본 포스팅에서는 위상 정렬에 대해 소개합니다.📌 위상 정렬이란?위상 정렬(Topology Sort)이란 방향 그래프의 모든 노드를 방향성을 모두 지키며 순서대로 나열하는 것을 의미합니다. 특
dmaolon00.tistory.com