본문 바로가기

CS/알고리즘3

선형 자료구조 (배열, 스택, 큐) 자료구조 (Data Structure) 란- 개발자가 데이터를 효율적으로 사용할 수 있도록 정리하는 방법으로 선형과 비선형으로 구분할 수 있다 선형 자료구조 (Linear Data Structure) - 데이터 요소가 순차적으로 나열되어 있으며 첫번째부터 마지막 요소까지 백트래킹 없이 순회할 수 있다 1. 배열(Arrays) 1-1) Array- 가장 기본적인 배열로 ‘고정된 크기’를 가지며 동일한 데이터 타입만 저장할 수 있습니다.int[] arr = new int[5];for (int i = 0; i 메서드설명clone()배열 복사length배열 길이sort()배열 정렬fill()배열의 모든 요소를 특정 값으로 설정binarySearch()이진 검색을 수행하여 배열에서 지정된 값의 인덱스를 반환equ.. 2024. 6. 4.
탐색 알고리즘2 (이분탐색, DP) 탐색 DP(Dynamic Programming, 동적 계획법) 겹치는 결과를 별도의 메모리 영역에 저장해서 한번만 계산하고 재사용하도록 한다  DP 공식 f(n) = f(n-1) + f(n-2) 탑다운 (Top-Down) 보텀업 (Bottom-Up)작은 크기로 문제를 나눠서 해결작은 것부터 해결해서 점차 빌드업메모제이션 (memoization)타뷸레이션 (tabulation)일부만 계산해도 답이 나올 때모두 계산해야 답이 나올 재귀반복문시간 복잡도 O(n)시간 복잡도 O(n) DP의 조건최적 부분 구조(Optimal Substructure)큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있다.중복되는 부분 문제(Overlapping Subproblem)부분 문제가 중.. 2024. 6. 3.
탐색 알고리즘 (브루트포스, DFS, BFS, 백트래킹) 탐색데이터 구조 내에서 가능한 경우의 수를 탐색해 최적의 결과를 찾는 방법선형 탐색 알고리즘 순차적 탐색이진 탐색비선형 탐색 알고리즘트리나 그래프 같이 복잡한 형태에 사용dfs / bfs  1. 브루트 포스완전 탐색모든 경우의 수 탐색단순하지만 경우의 수가 많아서 비효율적일 수 있다 2. DFS 깊이 우선 탐색그래프 또는 트리에서 모든 경로 탐색한 방향으로 깊숙이 노드 탐색 후 더이상 갈 곳이 없으면 다른 방향 탐색스택 / 재귀 함수 사용 3. 백트래킹DFS의 확장 개념해결 가능성 없는 경로일 경우 탐색 중지하고 되돌아가 다른 경로 탐색 4. BFS 너비 우선 탐색시작 노드에서 가까운 노드부터 탐색같은 깊이 층의 노드들 모두 탐색 후 층 내려가면서 탐색큐 함수 사용최단 경로 문제 알고리즘 선택 가이드 ▣.. 2024. 4. 30.