Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩
- N번째큰수
- 쌤쌤쌤
- c++ #boj #
- c++ #입출력 #속도 #ios #sync_with_stdio #cin #cout #tie
- 투포인터 #백준 #boj #20922 #22862
- 30870
- 최소 #공배수 #최대 #공약수 #유클리드 #호제법 #lcm #gcd #c++ #boj #3343 #백준 #장미
- 3D #Reconstruction #computer #vision #volume #metric #tsdf #kinect #fusion
- 백준
- 3343
- BOJ
- 줄어드는수
- 호반우 상인
- graph
- 사이클 없는 그래프
- graph #최단경로
- 1174
- 백준 #다익스트라 #dijkstra #9370 #c++
- LIS #가장긴증가하는부분수열 #
- boj #백준
- 16202
- backtracking #codetree #디버깅 #삼성코테
- 22869
- 레드아보
- 20117
- 진법변환 #2to10 #10to2 #이진법 #십진법 #변환 #bitset #c++
- C++
- 이분탐색 #dp #11053
- hcpc
Archives
- Today
- Total
hyunjin
[C++][BOJ 11000 강의실 배정]그리디,정렬,우선순위큐 본문
728x90
우선순위 큐를 배웠다.
단순하게 가자
우선순위 큐를 사용하기 전엔 직접 내부 for 돌며 검사했는데
우선순위 큐를 사용하니 알아서 top만 검사하면 되니까 쉽게 끝났다.
문제풀이
1. 시작,끝 시간 입력 받아 시작 시간 순으로 정렬, 시작 시간이 같다면 먼저 끝나는 순으로 정렬
2. 우선순위큐 오름차순 정렬 되도록 만들어 놓고
3. 맨 처음 클래스 끝나는 시간 하나 넣어준다.
4. for 돌며 q의 top( 가장 먼저 끝나는 수업) 과 비교해서 안겹치면 그 수업의 끝나는 시간 갱신, 겹친다면 push
소스코드
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
struct node{ int s,e;};
int n;
node times[200000];
bool compare(node a, node b){
return (a.s==b.s)? a.e<b.e : a.s<b.s ;
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n;
for(int i = 0 ; i < n; i++){
cin>>times[i].s>>times[i].e;
}
sort(times,times+n,compare);
priority_queue<int , vector<int>, greater<int>> q;//오름차순
q.push(times[0].e);
for(int i = 1 ; i < n ; i++){
//end 시간이 먼저 인것부터 top됨
int s = times[i].s, e = times[i].e;
int now = q.top();
if(now>s){//겹치는경우
q.push(e);
}
else{
q.pop();
q.push(e);
}
}
cout<<q.size();
}
참고
728x90
'알고리즘 연습 > 백준' 카테고리의 다른 글
[C++][토마토 BOJ7569] BFS (0) | 2021.08.03 |
---|---|
[C++][BOJ 12886 돌그룹] (0) | 2021.07.27 |
[C++][BOJ 1080 행렬] 그리디 (0) | 2021.07.25 |
[C++][BOJ16953,A → B] DFS,BFS,그리디 (0) | 2021.07.20 |
[C++][BOJ 11497/통나무 건너뛰기] 그리디, 정렬 (0) | 2021.07.19 |