그리디 알고리즘 문제다.
그리디 알고리즘은 데이터들을 정확한 기준으로 정렬한 후,
특정 조건의 성립 여부를 확인하는 게 핵심이다.
해당 문제는 종료시간을 기준으로 정렬한 후,
앞 회의의 종료시간 이후에 시작하는 회의 중 가장 빨리 끝나는 회의를 뒤에 붙이면 해결된다.
제출 후 마지막 쯤 '틀렸습니다.'를 받았다.
어떤 예시가 있을까 생각해보니
3
3 4
2 2
0 2
종료시간을 기준으로 정렬을 하다보니
(0,2)(2,2)(3,4) vs (2,2)(3,4)
종료시간이 같고 시작시간이 다른 경우를 빼먹었었다.
정렬할 때 종료시간이 같은 경우 시작을 비교하는 조건을 추가했다.
public int CompareTo(Meeting? other)
{
if(this.endTime > other.endTime){
return 1;
}
else if (this.endTime == other.endTime){
// 3
// 3 4
// 2 2
// 0 2
if(this.startTime > other.startTime){
return 1;
}
else if (this.startTime == other.startTime){
return 0;
}
else{
return -1;
}
}
else{
return -1;
}
}