본문 바로가기

Programming Language/Java Algorithm3

[개념] 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 깊이 우선 탐색(DFS: Depth-First Search)와 너비 우선 탐색(BFS: Breadth-First Search)는 대표적인 그래프 노드 탐색 알고리즘으로 둘 다 트리와 같은 그래프 구조에서 데이터를 탐색하는 방식이다.   [깊이 우선 탐색(DFS)]1. 개념그래프 완전 탐색 기법 중 하나로 스택 자료구조를 사용하여 깊이를 우선적으로 탐색하는 알고리즘으로 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하고, 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 방식이다. - 자기 자신을 호출하는 순환 알고리즘 형태를 지니고 있어 재귀 함수로 구현이 가능하다.*실제 구현 시 재귀 함수를 이용하므로 스택 오버플로에 유의해야 한다.- 그래프 탐색 시 어떤 노드를 방문했었는지.. 2024. 9. 12.
[개념] 정렬 알고리즘 1. 배열 정렬하기 위한 내장 메서드(java.util.Arrays) 1) Arrays.sort(Array) : 기본 유형 또는 객체의 배열을 오름차순으로 정렬2) Arrays.sort(Array, fromIndex, toIndex) : fromIndex 및 toIndex 매개변수로 지정된 배열의 일부만 정렬3) Arrays.sort(Array, comparator) : Comparator를 사용하여 배열 정렬4) Arrays.parallelSort(Array) : 여러 스레드를 활용하여 배열 병렬로 정렬5) Arrays.parallelSort(Array, fromIndex, toIndex) : 오버로드된 parallelSort 메서드 버전을 사용하여 배열의 특정 요소 범위를 정렬 import java... 2024. 9. 12.
[개념] stack 과 queue 1. Stack- 삽입과 삭제 연산이 후입선출(Last-in first-out)로 이루어지는 자료구조이다. 후입선출은 삽입과 삭제가 한 쪽에서만 일어나는 특징을 가지고 있다.- 새 값이 스택에 들어가면 top이 새 값을 가리킨다. 스택에서 값을 빼낼 때 pop은 top이 가리키는 값을 스택에서 빼게 되어 있으므로 결과적으로는 가장 마지막에 넣었던 값이 나오게 된다. (단방향 입출력 구조: 데이터의 들어오는 방향과 나가는 방향이 같다. > 데이터를 하나씩만 넣고 뺄 수 있다)- 깊이 우선 탐색(DFS: Depth First Search), 백트래킹 종류의 로직에 효과적이다.- 재귀 함수의 동작 흐름과 같은 구조이다 [용어 설명]1) push() : top 위치에 새로운 데이터를 삽입하는 연산2) pop().. 2024. 9. 9.