Data Structure & Algorithms
-
2024 자료구조개론 & 알고리즘개론 정리 - 심화 문제Data Structure & Algorithms 2024. 4. 16. 20:11
2024 자료구조개론 & 알고리즘개론 정리 - 심화 문제 1. 배열 심화 문제 - 9문제 Q1. 문자열이 주어졌을 때 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 구현하세요. 추가적인 데이터 구조를 사용할 수 없다면 어떻게 할까요? Q2. 두 개의 문자열이 주어졌을 때, 하나가 다른 하나의 순열인지 결정하는 메소드를 작성하세요. Q3. 문자열 내의 모든 공백을 '%20'으로 바꾸는 메소드를 작성하세요. 문자열 끝에는 추가 문자를 저장할 충분한 공간이 있다고 가정하고, 문자열의 "실제" 길이가 주어진다고 가정합니다. (참고: Java에서 구현한다면, 이 작업을 제자리에서 수행할 수 있도록 문자 배열을 사용해 주세요.) 예시 입력: "Mr John Smith ", 13 출력: "Mr%20John%20..
-
2024 자료구조개론 & 알고리즘개론 정리 - 7. 최적화 기법 (DP, Greedy, Divide & Conquer)Data Structure & Algorithms 2024. 4. 16. 16:11
2024 자료구조개론 & 알고리즘개론 정리 - 7. 최적화 기법 (DP, Greedy, Divide & Conquer) 1. 배열과 링크드리스트 2. Hash Table 3. Queue & Stack 4. Tree & Graph 5. Sorting 6. Recursion 7. 최적화 기법 (DP, Greedy, Divide & Conquer)
-
2024 자료구조개론 & 알고리즘개론 정리 - 5. SortingData Structure & Algorithms 2024. 4. 16. 16:10
2024 자료구조개론 & 알고리즘개론 정리 - 5. Sorting 1. 배열과 링크드리스트 2. Hash Table 3. Queue & Stack 4. Tree & Graph 5. Sorting 6. Recursion 7. 최적화 기법 (DP, Greedy, Divide & Conquer) 생각해보니까 목차에 Recursion이 먼저 오는 게 맞았을지도 ... ㅎㅎㅎ 정렬은 크게 안정 정렬, 불안정 정렬이 있을 수 있겠다 안정 정렬은 동일한 숫자의 데이터가 여러 개 들어왔을 때, 그 들어온 순서가 변하지 않는 방식으로 정렬된다 합병 정렬, 삽입 정렬, 버블 정렬이 그 예이다. 불안정 정렬은 그 순서를 보장하지 않는다 퀵 정렬, 힙 정렬, 선택 정렬 퀵 정렬 불안정 정렬 시간 복잡도 평균 시간 복잡도는 O..
-
2024 자료구조개론 & 알고리즘개론 정리 - 3. Queue & StackData Structure & Algorithms 2024. 4. 16. 16:07
2024 자료구조개론 & 알고리즘개론 정리 - 3. Queue & Stack 1. 배열과 링크드리스트 2. Hash Table 3. Queue & Stack 4. Tree & Graph 5. Sorting 6. Recursion 7. 최적화 기법 (DP, Greedy, Divide & Conquer) Queue queue는 시간 순서상 먼저 집어 넣은 데이터가 먼저 나오는 선입선출 FIFO(First In First Out)형식으로 데이터를 저장하는 자료구조 구현 방식 Array-Based queue: enqueue와 dequeue 과정에서 남는 메모리가 생깁니다. 따라서 메모리의 낭비를 줄이기 위해 주로 Circular queue형식으로 구현을 합니다. List-Based: 재할당이나 메모리 낭비의 걱..
-
2024 자료구조개론 & 알고리즘개론 정리 - 2. Hash TableData Structure & Algorithms 2024. 4. 16. 16:05
2024 자료구조개론 & 알고리즘개론 정리 - 2. Hash Table 1. 배열과 링크드리스트 2. Hash Table 3. Queue & Stack 4. Tree & Graph 5. Sorting 6. Recursion 7. 최적화 기법 (DP, Greedy, Divide & Conquer) Direct Address Table (DAT) key:value 쌍에서 key값 그 자체를 index로 넣는 방법 문제점 Key값에 다양한 자료형 넣을 수 없음 (string, ... ) 메모리 낭비 -> key가 1, 20000001, 300001일 때 최소 20000001까지 사용됨 이 문제를 해결하기 위한 Hash Table Hash Function을 이용하여 각 Key값에 index번호 부여 이 Hash..
-
2024 자료구조개론 & 알고리즘개론 정리 - 1. 배열과 링크드리스트Data Structure & Algorithms 2024. 4. 16. 16:05
2024 자료구조개론 & 알고리즘개론 정리 - 1. 배열과 링크드리스트 1. 배열과 링크드리스트 2. Hash Table 3. Queue & Stack 4. Tree & Graph 5. Sorting 6. Recursion 7. 최적화 기법 (DP, Greedy, Divide & Conquer) list은 1) array list과 2) linked list로 나뉘어진다 array list는 다시 1) static array와 2) dynamic list로 나뉘어진다 array list 1) Static array 정의 : 메모리 상에 1) 연속적으로 순차적으로 저장할 수 있으며, 2) 고정된 크기의 저장공간에 저장한다 위의 특징 때문에 3) Random Access (=Direct Access)가 가능..