#include<stdio.h>
#include<stdlib.h>
struct arr{
int start;
int end;
};
arr array[100005];
int compare(const void *a,const void *b){
arr* ar1=(arr*)a;
arr* ar2=(arr*)b;
if(ar1->end!=ar2->end){ //종료시간이 다른 경우
if(ar1->end < ar2->end)// 종료시간 오름차순
return -1;
else if(ar1->end > ar2->end)
return 1;
else
return 0;
}
else{ //종료시간이 동일할 경우
if(ar1->start < ar2->start) //시작시간이 더 빠른 걸 앞으로. 시작시간 오름차순
return -1;
else if(ar1->start > ar2->start)
return 1;
else
return 0;
}
}
int main(void){
int t,cnt=0,last=0;
scanf("%d",&t);
for(int i=0;i<t;i++){
scanf("%d %d",&array[i].start,&array[i].end);
}
// qsort(array,sizeof(array)/sizeof(arr),sizeof(arr),compare);
qsort(array,t,sizeof(arr),compare);
for(int i=0;i<t;i++){
if(array[i].start>=last){
cnt++;
last=array[i].end;
}
}
printf("%d",cnt);
return 0;
}
[C++] 11286 : 절댓값 힙 (0) | 2022.04.14 |
---|---|
11723 : 집합 (0) | 2022.03.14 |
[C언어/그리디]1026 : 보물 (0) | 2022.03.02 |
[C++/다익스트라] 1753 : 최단경로 (0) | 2022.02.16 |
[C언어/DP] 9465 : 스티커 (0) | 2022.02.12 |