입력 코드
#include<stdio.h>
#include<stdlib.h>
typedef struct discussion {
int start, end;
}Discussion;
int compare(const void*, const void*);
int main() {
int n, i, cnt = 0, t1, t2, last = 0;
scanf("%d", &n);
Discussion* dis;
dis = (Discussion*)calloc(n, sizeof(Discussion));
for (i = 0; i < n; i++) {
scanf("%d %d", &t1, &t2);
dis[i].start = t1;
dis[i].end = t2;
}
qsort(dis, n, sizeof(Discussion), compare);
for (i = 0; i < n; i++) {
if (dis[i].start >= last) {
cnt++;
last = dis[i].end;
}
}
printf("%d", cnt);
free(dis);
return 0;
}
int compare(const void* a, const void* b) {
const Discussion* n1, * n2;
n1 = (const Discussion*)a;
n2 = (const Discussion*)b;
if (n1->end != n2->end) {
if (n1->end < n2->end) {
return -1;
}
else if (n1->end == n2->end) {
return 0;
}
else {
return 1;
}
}
else {
if (n1->start < n2->start) {
return -1;
}
else if (n1->start == n2->start) {
return 0;
}
else {
return 1;
}
}
}
코드 설명
#그리디알고리즘 #정렬
참고
문제 출처
'C' 카테고리의 다른 글
#92. [백준_C언어] 2447 : 별 찍기 - 10 \ 분할 정복 (0) | 2021.02.22 |
---|---|
#91. [백준_C언어] 11047 : 동전 0 \ 그리디 알고리즘 (0) | 2021.02.20 |
#86. [백준_C언어] 1991 : 트리 순회 \ 트리 (0) | 2021.02.18 |
#85. [백준_C언어] 1068 : 트리 \ 트리 (0) | 2021.02.18 |
#84. [백준_C언어] 11724 : 연결 요소의 개수 \ 그래프 탐색 (0) | 2021.02.17 |