벨만-포드 알고리즘(Bellman-Ford Algorithm)

벨만-포드 알고리즘(Bellman-Ford Algorithm)은 음의 가중치를 허용하는 최단 경로 찾기 알고리즘입니다. 다익스트라 알고리즘과 달리 음의 가중치가 있어도 동작하지만, 음의 사이클(negative weight cycle)이 존재할 경우 경로를 제대로 계산할 수 없습니다. 이 알고리즘은 단일 시작점에서 다른 모든 정점까지의 최단 거리를 구할 수 있습니다. 벨만-포드 알고리즘 예제 주요 코드: 사용 예제: 출력 결과: 개요 용어 정리 핵심 아이디어 벨만-포드 … Read more

투 포인터 알고리즘 (Two Pointers)

투 포인터 알고리즘은 알고리즘 문제 풀이에서 자주 사용되는 기법입니다. 선형 자료구조(배열, 문자열 등)에서 특정 조건을 만족하는 부분을 빠르게 찾을 수 있습니다. 이번 포스트에서는 투 포인터 알고리즘에 대해 자세히 알아보겠습니다. 투 포인터 알고리즘이란? 이는 두 개의 포인터를 사용해 배열을 탐색하는 방식입니다. 기본 개념 포인터란? 투 포인터 구조 대표적인 구조는 다음과 같습니다: 큰 흐름은 배열을 처음부터 탐색하는데 … Read more

다익스트라 알고리즘 (Dijkstra’s Algorithm)

다익스트라 알고리즘(Dijkstra’s Algorithm)은 그래프의 한 정점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘입니다. 음의 가중치가 없는 그래프에서만 동작하며 대표적인 최단 경로 탐색 알고리즘입니다. 다익스트라 알고리즘 예제 우선순위 큐 사용 예제 예제 그래프 다익스트라 알고리즘 설명 PriorityQueue는 다익스트라 알고리즘에서 가장 가까운 노드를 선택하기 위해 사용됩니다. 이번 예제에서는 배열 정렬을 사용하지만 성능이 중요한 상황에서는 최소 힙 구조를 … Read more

해시 알고리즘(Hash Algorithm) 이란?

원본: 해시 알고리즘 개요: 유형, 방법론 및 사용법 해시 알고리즘은 데이터를 왜곡하여 읽을 수 없게하는 수학 함수입니다. 이는 단방향 알고리즘으로 다른 사람이 텍스트를 해독하거나 디코드할 수 없게 하는 것이 해시의 핵심 개념입니다. 해시는 유휴 데이터를 보호하므로, 다른 사용자가 서버에 접근해 코드를 읽어낸다 해도 저장된 내용을 알아낼 수 없습니다. 또한 작성자가 데이터를 만든 후 데이터가 변경되지 … Read more