분류 전체보기
-
어떤 알파벳에 몇 번 나오는지로 출력 예시) aaabbccdddeeeff -> a3b2c2d3e3f2 알파벳은 총 26 글자 // 풀이 1. 모든 알파벳에 대해서 Count() // 힌트: 소문자 알파벳 'a'~'z'는 int로는 97~122에 대응 // 단점: 없는 알파벳도 세야 한다. // 표를 사용할 수도 있고 사용하지 않을 수도 있음 int table[26] = { 0 }; // 모든 값을 0으로 초기화 for (int i = 0; i < 26; i++) { // 힌트: char(i + 97) // 표를 만들고 나중에 몰아서 출력하는 방법 // table[i] = ... table[i] = Count(arr, n, i + 97); // 표를 만들지 않고 직접 출력하는 방법 // ... int co..
문자열 압축 문제 (String Compression)어떤 알파벳에 몇 번 나오는지로 출력 예시) aaabbccdddeeeff -> a3b2c2d3e3f2 알파벳은 총 26 글자 // 풀이 1. 모든 알파벳에 대해서 Count() // 힌트: 소문자 알파벳 'a'~'z'는 int로는 97~122에 대응 // 단점: 없는 알파벳도 세야 한다. // 표를 사용할 수도 있고 사용하지 않을 수도 있음 int table[26] = { 0 }; // 모든 값을 0으로 초기화 for (int i = 0; i < 26; i++) { // 힌트: char(i + 97) // 표를 만들고 나중에 몰아서 출력하는 방법 // table[i] = ... table[i] = Count(arr, n, i + 97); // 표를 만들지 않고 직접 출력하는 방법 // ... int co..
2023.10.31 -
// 배열 arr에 x가 몇 번 나오는지 반환 int Count(const int* const arr, const int n, const int x) { // TODO: int count = 0; for (int i = 0; i < n; i++) { if (arr[i] == x) { count++; } } return count; } // 배열 arr에 x가 있으면 index 반환, 없으면 -1 반환 int SequentialSearch(int* arr, int n, int x) { // TODO: for (int i = 0; i < n; i++) { if (arr[i] == x) { return i; } } return -1; } int SortedCountHelper(int* arr, int n, i..
순차 탐색 (Sequential Search)// 배열 arr에 x가 몇 번 나오는지 반환 int Count(const int* const arr, const int n, const int x) { // TODO: int count = 0; for (int i = 0; i < n; i++) { if (arr[i] == x) { count++; } } return count; } // 배열 arr에 x가 있으면 index 반환, 없으면 -1 반환 int SequentialSearch(int* arr, int n, int x) { // TODO: for (int i = 0; i < n; i++) { if (arr[i] == x) { return i; } } return -1; } int SortedCountHelper(int* arr, int n, i..
2023.10.31 -
인덱스를 순회하면서 한 값을 골라서 그 값을 적절한 위치에 삽입하는 정렬 알고리즘 기존에 이미 정렬된 값의 덩어리들을 흐트러뜨리지 않고 유지할 수 있다는 장점이 있다. 그러나 삽입을 하면서 값을 밀어낼때 값들을 하나씩 옆으로 복사해서 옮겨야 한다는 점이 단점이다. https://www.geeksforgeeks.org/insertion-sort/ Insertion Sort - Data Structure and Algorithm Tutorials - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming arti..
삽입 정렬 (Insertion Sort)인덱스를 순회하면서 한 값을 골라서 그 값을 적절한 위치에 삽입하는 정렬 알고리즘 기존에 이미 정렬된 값의 덩어리들을 흐트러뜨리지 않고 유지할 수 있다는 장점이 있다. 그러나 삽입을 하면서 값을 밀어낼때 값들을 하나씩 옆으로 복사해서 옮겨야 한다는 점이 단점이다. https://www.geeksforgeeks.org/insertion-sort/ Insertion Sort - Data Structure and Algorithm Tutorials - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming arti..
2023.10.30 -
https://www.geeksforgeeks.org/stable-and-unstable-sorting-algorithms/ Stable and Unstable Sorting Algorithms - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org 정렬을 했을때 값이 같은 값은 어떻게 될까? 보통의 경우는 어차피 값이..
정렬 알고리즘의 안정성 (Stability)https://www.geeksforgeeks.org/stable-and-unstable-sorting-algorithms/ Stable and Unstable Sorting Algorithms - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org 정렬을 했을때 값이 같은 값은 어떻게 될까? 보통의 경우는 어차피 값이..
2023.10.30 -
한쪽에서 시작해서 바로 옆값과 서로 비교해서 값을 한쪽으로 밀어내는 방식 https://simple.wikipedia.org/wiki/Bubble_sort Bubble sort - Simple English Wikipedia, the free encyclopedia From Simple English Wikipedia, the free encyclopedia A bubble sort illustrated Bubble sort is a simple sorting algorithm. It is simple to understand, so it is usually taught to new students. It is not as efficient as some other sorting algorithms. B..
버블 정렬 (Bubble Sort)한쪽에서 시작해서 바로 옆값과 서로 비교해서 값을 한쪽으로 밀어내는 방식 https://simple.wikipedia.org/wiki/Bubble_sort Bubble sort - Simple English Wikipedia, the free encyclopedia From Simple English Wikipedia, the free encyclopedia A bubble sort illustrated Bubble sort is a simple sorting algorithm. It is simple to understand, so it is usually taught to new students. It is not as efficient as some other sorting algorithms. B..
2023.10.30 -
최댓값 혹은 최솟값을 하나씩 찾아서 한쪽으로 몰아넣는 방식. 예를들어 오름차순 정렬이라고 한다면, 배열 전체 순회하면서 최댓값을 찾음 맨 오른쪽에 배치. 정렬한 숫자 빼고 나머지 또 다 순회해서 그 다음으로 큰 값을 찾음. 정렬 안된 숫자 중 가장 오른쪽 배치 반복. int min_index; for (int i = 0; i < size - 1; i++) { min_index = i; for (int j = i + 1; j < size; j++) { if (arr[j] < arr[min_index]) { min_index = j; } } swap(arr[i], arr[min_index]); } Worst-case O(n^2) 성능 https://en.wikipedia.org/wiki/Selection_s..
선택 정렬 (Selection Sort)최댓값 혹은 최솟값을 하나씩 찾아서 한쪽으로 몰아넣는 방식. 예를들어 오름차순 정렬이라고 한다면, 배열 전체 순회하면서 최댓값을 찾음 맨 오른쪽에 배치. 정렬한 숫자 빼고 나머지 또 다 순회해서 그 다음으로 큰 값을 찾음. 정렬 안된 숫자 중 가장 오른쪽 배치 반복. int min_index; for (int i = 0; i < size - 1; i++) { min_index = i; for (int j = i + 1; j < size; j++) { if (arr[j] < arr[min_index]) { min_index = j; } } swap(arr[i], arr[min_index]); } Worst-case O(n^2) 성능 https://en.wikipedia.org/wiki/Selection_s..
2023.10.30