일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프레임워크와 라이브러리의 차이
- string 함수
- 시간복잡도
- 구조체와 클래스의 공통점 및 차이점
- 연결요소
- k-eta
- 백준
- scanf
- UI한글변경
- vscode
- double ended queue
- 장고란
- 입출력 패턴
- c++
- Django란
- iOS14
- Django의 편의성
- 입/출력
- 매크로
- EOF
- 자료구조
- 알고리즘 공부방법
- 표준 입출력
- 이분그래프
- string 메소드
- Django Nodejs 차이점
- 엑셀
- 2557
- correlation coefficient
- getline
- Today
- Total
목록알고리즘/백준풀이8. 정렬 (9)
Storage Gonie
문제 풀이 자세한 풀이 : https://ldgeao99.tistory.com/entry/챕터5-5-정렬-문제풀이2-1 # C++ #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector v(n); for (int i = 0; i > v[i].first; v[i].second = i; } sort(v.begin(), v.end()); // NlogN의 시간복잡도 int ans = 0; for (int i = 0; i < n; i++){ if (ans < (v[i..
문제 풀이 자세한 풀이 : https://ldgeao99.tistory.com/entry/챕터5-5-정렬-문제풀이2-1 # C++ #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k; cin >> n >> k; vector v(n); for (int i = 0; i > v[i]; nth_element(v.begin(), v.begin() + (k-1), v.end()); cout
문제 풀이 자세한 풀이 : https://ldgeao99.tistory.com/entry/챕터5-5-정렬-문제풀이2-1 # C++(선정렬 후 카운트) #include #include #include using namespace std; int main() { int n; cin >> n; // 숫자입력받기 vector v(n); for (int i = 0; i > v[i]; // 정렬하기 sort(v.begin(), v.end()); // 숫자를 카운트 하기 long long num; int num_count = 0; int temp_count = 0; for (int i = 0; i < n; i++){ temp_count += 1; if(i == n-1 || v[i] != v..
문제 풀이 * 입력받은 수를 전부 다 입력 받아서 저장하게 되면 제한된 8MB의 메모리를 초과해버린다. 숫자를 카운트 해두었다가 표준출력으로 출력만 해주는 방식을 사용해야한다. (10^7 * 4byte = 40MB이므로) # C++ #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int T; cin >> T; int arr[10001] = {0}; // 숫자 개수 카운트 for(int i = 0 ; i > a; arr[a] += 1; } // 각 숫자를 개수만큼 출력해주기 for(int i = 1 ; i
문제 풀이 # C++(tutple, sort( , ,비교함수) 이용) - 중첩된 if문을 사용하지 않으므로 실수를 방지할 수 있다. #include #include #include #include using namespace std; struct Person{ string name; int kor, eng, math; }; bool cmp(const Person &u, const Person &v){ return make_tuple(-u.kor, u.eng, -u.math, u.name) > T; vector vec(T); for (int i = 0; i < T; i++) c..
문제 풀이 # C++(pair, stable_sort(, , 비교함수) 사용) - 가장 간단 #include #include #include #include using namespace std; bool cmp (pair u, pair v) { return u.first > T; vector vec(T); for (int i = 0; i > vec[i].first >> vec[i].second; stable_sort(vec.begin(), vec.end(), cmp); for (int i = 0; i > vec[i].second; stable_sort(vec...
문제 풀이 자세한 풀이 : # C++(pair, vector, sort 사용 : first second 를 뒤바꿔 입력받아 정렬한뒤 출력 때 다시 뒤집어 출력하는 방식) - 가장 간단 #include #include #include #include using namespace std; int main() { int T; cin >> T; vector vec(T); for (int i = 0; i > vec[i].second >> vec[i].first; sort(vec.begin(), vec.end()); for (int i = 0; i > vec[i].second; sort(vec.begin(), vec.end(), cmp)..
문제 풀이 자세한 풀이 : # C++(pair, vector, sort 이용) - 이 문제에서 가장 간편한 방법 #include #include #include #include using namespace std; int main() { int T; cin >> T; vector vec(T); for (int i = 0; i > vec[i].first >> vec[i].second; sort(vec.begin(), vec.end()); for(int i = 0; i > vec[i].y; sort(vec.begin(), vec.end(), cmp); for (int i = 0; i > vec..
문제 풀이 자세한 풀이 : # C++(방법1 : Quick Sort 직접 구현 - lomuto partition 알고리즘 사용) #include using namespace std; int a[1000000]; void swap(int &x, int &y) { int z = x; x = y; y = z; } int choosePivot(int low, int high) { return low + (high-low)/2; // 중간 index 반환 } /* i와 j가 모두 증가하는 Lomuto Partition방식의 구현으로 swap을 진행하고 분할기준점을 반환함*/ int partition(int low, int high) { int pivotIndex = choosePivot(low, high); //..