Algorithm Problems (212) 썸네일형 리스트형 [백준/C++] 1766번: 문제집 문제https://www.acmicpc.net/problem/1766문제 요약1번부터 N번 문제까지 존재하는 문제집을 풀려고 한다. 규칙에 따라 문제를 풀 순서를 정해야 한다. 1. N개의 문제를 모두 풀어야 한다.2. 먼저 푸는 것이 좋은 문제를 반드시 먼저 푼다.3. 가능하면, 쉬운 문제부터 풀어야 한다. 문제의 개수와 먼저 푸는 것이 좋은 문제 정보가 주어졌을 때, 순서를 출력한다.코드#include #include #include #include using namespace std;int n, m;vector edges[32001];priority_queue pq;int in_degree[32001];int main() { cin >> n >> m; for (int i = 0; i > .. [백준/C++] 7662번: 이중 우선순위 큐 문제https://www.acmicpc.net/problem/7662문제 요약이중 우선순위 큐란 전형적인 우선순위 큐처럼 데이터를 삽입/삭제할 수 있는 자료구조이다. 이 때, 일반적인 우선순위 큐와 달리 최솟값과 최댓값 중 선택해서 삭제할 수 있다. 연산 후, 이중 우선순위 큐 내 최댓값과 최솟값을 출력한다.코드#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while (t--) { int k; cin >> k; multiset ms; w.. [백준/C++] 11758번: CCW 문제https://www.acmicpc.net/problem/11758문제 요약2차원 좌표 평면 위에 p1, p2, p3 점 3개의 좌표가 주어진다. p1, p2, p3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 출력한다.코드#include using namespace std;int x_1, x_2, x_3, y_1, y_2, y_3;int main() { cin >> x_1 >> y_1 >> x_2 >> y_2 >> x_3 >> y_3; int result = ((x_2 - x_1) * (y_3 - y_1)) - ((y_2 - y_1) * (x_3 - x_1)); if (result == 0) { cout 0) { cout 코드 설명CCW 알고리즘을 이.. [백준/C++] 5430번: AC 문제https://www.acmicpc.net/problem/5430문제 요약AC 언어는 정수 배열에 연산을 하기 위해 만든 언어이다. 함수 R은 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는 상태에서 D 함수를 사용하면, 에러가 발생한다. 배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 출력한다.코드#include #include #include using namespace std;int t;int main() { cin >> t; while (t--) { string p; cin >> p; int n; cin >> n; deque dq; string arr; .. [백준/C++] 11729번 하노이 탑 이동 순서 문제https://www.acmicpc.net/problem/11729문제 요약3개의 장대가 있고, 첫 번째 장대에 반경이 서로 다른 n개의 원판이 큰 순서대로 쌓여 있다. 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮겨야 한다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 작업을 수행하는 데 필요한 이동 횟수와 순서를 출력한다.코드#include #include #include using namespace std;int n;// {a, b} : a번째 탑의 가장 위 원판을 b번째 탑의 가장 위로 이동vector> res;// a번째 탑에서 cnt - 1개 원판을 b번째 탑으로 이동시켜두고, c번째 탑으로 옮기기v.. [백준/C++] 11048번: 이동하기 문제https://www.acmicpc.net/problem/11048문제 요약N × M 크기의 미로는 1 × 1 크기의 방으로 나누어져 있다. 각 방에는 사탕들이 놓여져 있고, 방문할 때마다 모두 가져간다. 미로의 가장 왼쪽 윗 방에서 가장 오른쪽 아랫 방까지 이동할 때, 가져갈 수 있는 사탕 개수의 최댓값을 출력한다.코드#include #include using namespace std;int n, m;int arr[1010][1010];int dp[1010][1010];int dx[3] = { 1, 0, 1 };int dy[3] = { 0, 1, 1 };int res;int dfs(int x, int y) { if (dp[x][y] != -1) { return dp[x][y]; .. 이전 1 2 3 4 5 6 ··· 36 다음