본문 바로가기
반응형

전체 글44

[알고리즘/Algorithm] 깊이 우선 탐색 - DFS / BOJ 2606 바이러스 안녕하세요!드디어 그래프 이론을 활용한 알고리즘 공부를 하고 있습니다.이론을 정리하고 문제 푸는 게 재미있지만 시간이 좀 걸리는 작업이기는 하네요 ㅎㅎ제가 한창 알고리즘 공부할 때 정말 재미있게 배웠던 그래프 알고리즘 중,가장 많이 활용되고 기본적으로 쓰이는 탐색 알고리즘을 공부해보겠습니다 :)이번에는 DFS 알고리즘을 정리해보려고 합니다~DFS의 정의 (깊이 우선 탐색)🔹 깊이 우선 탐색/DFS(Depth-First-Search) 란?: 그래프 또는 트리에서 한 정점에서 시작하여, 한 방향으로 갈 수 있는 곳 까지 끝까지 깊이 탐색한 후,더 이상 갈 곳이 없으면 다시 돌아와서(백트래킹) 다른 경로를 탐색하는 알고리즘입니다. 🔹 DFS의 특징항목설명탐색 방식깊이 우선 (먼저 한 쪽 끝까지 파고 듦)자.. 2025. 6. 16.
[자료구조 | Data Structure] 그래프 이론 Graph Theory 안녕하세요,오늘은 알고리즘에 사용되는 자료구조를 정리해보려고 합니다.알고리즘 문제 풀이에 대표적으로 사용되는 자료구조증 하나, 그래프에 대하여 정리해보겠습니다.그래프(Graph), 혹은 그래프 이론(Graph Theory)라고 불리는 이 자료구조는, DFS, BFS 문제를 푸는 데 기초가 되는 이론이고,나아가 위상정렬 등의 문제를 푸는 데도 기초가 됩니다.트리 문제도 그래프 이론에서 출발하죠!그래서 저도 기초를 다시 다지기 위해서 정리해봅니다. :)그래프 이론(Graph Theory) 기초 개념 정리그래프는 현실 세계의 네트워크, 관계, 연결구조를 수학적으로 표현한 자료구조 입니다.소셜 네트워크, 지도, 컴퓨터 네트워크, 알고리즘 문제 등에서 필수적으로 사용됩니다. 그래프란?: 그래프란 정점(Vertex.. 2025. 5. 26.
[알고리즘/Algorithm] 분할정복 Divide and Conquer / BOJ 2630 색종이 만들기 안녕하세요, 이번에는 분할정복(Divide and Conquer)에 대하여 정리해보려고 합니다.동적계획법(Dynamic Programming)도 분할정복으로 문제를 푸는 경우가 많아서,그보다 먼저 정리를 할까 했는데 냅다 문제를 풀어버렸습니다 ㅎㅎ 따라서 이번엔 많은 문제해결에 적용이 되는 분할정복(Divide and Conquer)에 대해 정리해보겠습니다.분할정복 (Divide and Conquer) 이란?분할정복 (Divide and Conquer)이란, 큰 문제를 작은 문제로 분할(Divide)하여 작은 문제부터 해결(Conquer)하는 알고리즘 기법입니다. ◆ 핵심 개념문제를 작은 하위 문제(Subproblem)로 분할(Divide)하위 문제를 재귀적으로 정복(Conquer)하위 문제들의 결과를 .. 2025. 5. 13.
[알고리즘/Algorithm] 유클리드 호제법 Euclidean Algorithm / BOJ 2609 최대공약수와 최소공배수 안녕하세요!이번에는 수학 알고리즘 중 최대공약수, 최소공배수를 구할 때 활용할 수 있는 '유클리드 호제법'에 대해서 정리해보려고 합니다 :)알고리즘이 수학과 관련이 높은 만큼 종종 접하는 문제 유형인 듯 합니다. 수학 알고리즘이 생각보다 정수론이나 특정 이론과 관련있는 경우가 많아서인지,수학 공부를 하지 않은 상태에서는 떠올리기가 쉽지 않은 경우도 종종 있습니다.이렇게 문제 풀면서 정리해보는 것도 좋을 듯 하여,수학 알고리즘 중 하나인 '유클리드 호제법'도 정리해봅니다 !! 유클리드 호제법 Euclidean Algorithm유클리드 호제법은두 수의 최대공약수(Greatest Common Divisor)를 구하는 알고리즘 으로,나눗셈을 반복해 계산하며 최대공약수를 찾습니다. 두 수 a, b (단, a ≥ .. 2025. 4. 17.
반응형