728x90
반응형

알고리즘/그리디 7

[백준/그리디/C++] 11000번 강의실 배정(우선순위큐 사용) *

문제는 여기! 우선순위 큐 // 가장 작은 값이 우선순위가 되는 큐 (오름차순) priority_queue pq_less; // 가장 큰 값이 우선순위가 되는 큐 (내림차순) priority_queue pq_greater; // 삽입 pq_less.push(0); // 우선순위가 가장 높은 요소 반환 pq_less.top(); //우선순위가 가장 높은 요소 제거 pq_greater.pop(); 전체 코드 #include using namespace std; int N; vector classTime; // 수업시간 목록 priority_queue pq_less; // 종료시간 큐(가장 작은 값이 우선순위가 되는 큐) int greedy(int cnt){ pq_less.push(classTime[0].se..

[백준/그리디/C++] 1744번 수 묶기

https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 문제풀이 방법 1. 음수와 양수를 두 벡터에 따로 담는다 (0은 곱하면 0이 되므로 음수와 함께 담는다) 2. 큰 수 끼리 곱하면 수가 더 커지기 때문에 두 벡터를 정렬한다 3. 변수 tmp1을 두고 tmp1이 빈 경우 tmp1에 수를 넣고, tmp1에 수가 들어있는 경우 곱한 값을 result 에 넣어준다 (두 벡터 모두 수행) #include #include #include using nam..

728x90
반응형