Algorithm 3

LRU(Least Recently Used)Cache 알고리즘

캐시는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약해야 할 경우 사용한다.캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 없이 더 빠른 속도로 데이터에 접근이 가능하다. LRU (Least Recently Used)가장 최근에 사용되지 않은 데이터를 제거하는 방식빠른 접근과, 업데이터가 가능하지만 많은 공간을 차지한다는 단점이 있다.새로운 데이터가 캐시에 저장될 때, 캐시에 있는 데이터에 접근할 때마다 해당 데이터를 가장 최근에 사용된 데이터로 표시하고 가장 오래 전에 사용된 데이터를 제거한다. 따라서 가장 최근에 사용된 데이터를 캐시에 보관한다.이중 연결 리스트나 해시 맵과 같은 자료 구조를 사용하여 구현할 수 있다. 구..

Algorithm 2025.01.07

버블 정렬 Bubble Sort 알고리즘

정렬 알고리즘 중 하나로, 인접한 두 요소를 비교하고 필요에 따라 자리를 교환하면서 배열을 정렬하는 방식이다. 동작 방식배열의 첫 번째 요소와 두 번째 요소를 비교한다.첫 번째 요소가 더 크면 두 요소와 자리를 바꾼다.그런 다음 두 번째 요소와 세 번째 요소를 비교한다.이 과정을 배열 끝까지 반복한다. 한 번의 반복이 끝나면 가장 큰 요소가 배열의 마지막 자리에 위치한다.두 번째 반복에서는 마지막 요소는 이미 정렬되어있기 때문, 그 전까지만 반복한다.위의 과정을 배열이 정렬될 때까지 반복한다.구현public class 버블정렬 { public static void main(String[] args) { int[] array = {5, 3, 8, 4, 2}; bubbleSor..

Algorithm 2025.01.07

Backtracking

가능한 모든 경우의 수를 탐색하는 알고리즘 기법모든 가능한 경우의 수 중에서 특정 조건을 만족하는 경우만 탐색한다. 조건을 만족하지 않으면 이전 단계로 돌아가 다른 해를 탐색한다. 불필요한 경로를 빨리 제거할 수 있어, 효율적이다. 해를 부분적으로 구성해 나가면서, 해당 해가 유망하지 않은 경우 탐색을 중단하고 이전 단계로 돌아간다.각 단계에서 선택을 하고, 그 선택에 따라 다시 문제를 재귀적으로 탐색한다.Pruning 가지치기 동작가능한 해를 하나씩 만들며 조건을 만족하는지 확인한다.각 단계에서 유망성을 확인한다.유효하지 않으면 해당 경로의 탐색을 중단하고 이전 단계로 돌아간다.유효한 해인 경우 결과에 추가한다.위의 과정을 반복하여 가능한 모든 경오를 탐색한다. 구현 예시숫자 n이 주어졌을 때, n개의..

Algorithm 2025.01.07