본문 바로가기

정렬4

[백준 C++] 15824번: 너 봄에는 캡사이신이 맛있단다 1. 문제https://www.acmicpc.net/problem/15824 2. 알고리즘 분류수학정렬조합론분할 정복을 이용한 거듭제곱 3. 소스 코드#include #include #define MAX_N 300000using namespace std;typedef long long ll;ll scovile[MAX_N];ll MOD = 1000000007;// binary exponentiation 알고리즘ll binpow(ll a, ll b) { ll res = 1; while (b) { if (b & 1) res = (res * a) % MOD; a = (a * a) % MOD; b >>= 1; } return res;}int main() { ios_base::sync_with_stdio(fa.. 2024. 6. 15.
[백준 C++] 13334번: 철로 1. 문제https://www.acmicpc.net/problem/13334 2. 알고리즘 분류자료 구조정렬스위핑우선순위 큐 3. 소스 코드#include #include #include #include using namespace std;int N, d, ret;vector> pos;priority_queue, greater> pq;bool cmp(pair a, pair b) { if (a.second == b.second) { return a.first > N; // 집과 사무실 거리 입력 for (int i = 0; i > h >> o; if (h > o) swap(h, o); pos.push_back({ h, o }); } // d : 철로의 길이 cin >> d; // end 거리 기준으로.. 2024. 6. 9.
[기타] 주어진 수열에서 선택한 3개의 값의 합이 0에 가장 가깝게 선택하는 방법 1. 유사 문제 https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 2. 소스 코드 Key Point) 1. 투 포인터 알고리즘을 활용하기 위해 정렬한다. 2. 3개의 값을 비교할 때는 하나를 정해 놓고 2개의 값을 '투 포인터' 알고리즘을 통해 계산한다. #include #include #include using namespace std; long long arr[5000]; long long ans[3]; int main(.. 2023. 10. 3.
[알고리즘] 위상 정렬(Topological Sorting) 1. 개요 및 대표 문제 1. 순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용하는 알고리즘 2. 사이클이 없는 방향 그래프(Direct Acyclic Graph)에서만 수행 3. 시간 복잡도 = O(V + E) https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 2. 위상 정렬의 대표 예시 위의 이미지처럼 작업의 순서가 정해져 있을 때 작업을 정렬해주는 알고리즘이 바로 '위상 정렬'이다. .. 2023. 10. 2.