https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제분석 N개의 수가 주어지고, 이를 오름차순으로 정렬하는 문제이다. 입력으로는 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력으로는 둘째 줄부터의 입력들을 오름차순으로 정렬하면 된다. 예를 들어, 첫째 줄에 5가 주어지고 두번째 줄부터 차례로 3 6 9 3 6 이 주어졌다고 했을 때, 출력으로..
2022.02.08 아직까진 조금 어렵다.. 이해가 팍 안되는 느낌 2022.02.14 중복순열 추가 dfs로 순열 구하기 void dfs(int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(0); return 0; } dfs로 조합 구하기 void dfs(int num, int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) cout m; dfs(1,0); return 0; } dfs로 중복조합 구하기 #include using namespace std; int n, m; int arr[9]; bool visited[9]; void dfs(int num, int cnt) { if (cnt ..
에라토스테네스의 체(sieve of Eratosthenes) = >N 이하의 소수(prime number)를 모두 정확히 찾아내는 도구 case1. O(N^2) #include #include using namespace std; const int MAX = 1000; int main(){ vector v; for(int i=2; i
정렬 - 선택 정렬 void sort(int* a, const int n) { // n개의 정수 a[0]부터 a[n-1]까지 비감소순 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1]사이에 가장 작은 정수 값을 찾음 for (int k = i + 1; k < n; k++) { if (a[k] < a[j]) { j = k; // 교환 } } swap(a[i], a[j]); } } 제일 작은 정수를 찾아 앞으로 보내는 작업을 계속 반복한다. 탐색 이원탐색(binary search) int binarySearch (int arr[], int low, int high, int key) { while (low key) high = mid - 1; else..
우리가 다룰 자료구조라는 것은, 데이터 구조라고도 하며 크게는 순차구조와 비 순차구조가 있다. 순차구조(sequential structure) 자료의 논리적 순서(logical sequence)가 물리적 인접성으로 표현되는 구조로, 대표적 예시로는 스택(LIFO)과 큐(FIFO)가 있다. 비순차구조(nonsequential structure) 자료의 논리적 순서와 물리적 인접성이 무관한 구조로 논리적 순서를 표현하기 위한 별도의 방법이 필요한 구조로, 대표적 예시로는 트리와 그래프 등이 있다. 자료구조뿐만 아니라 OOP 역시 같이 다룰 예정인데, 객체지향이란, 캡슐화 상속 다형성을 모두 만족하는 프로그래밍 기법을 말한다. 객체지향의 장점 1. 개발의 간소화 - 복잡한 작업을 부분 작업들로 ..