할껀하고놀자

[백준] 1931번 회의실 배정 본문

[IT]/백준

[백준] 1931번 회의실 배정

working_hard 2019. 6. 2. 19:44
728x90
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

class Meeting {
public:
	int begin, end;
};

bool compare(const Meeting &u, const Meeting &v) {
	if (u.end == v.end) {
		return u.begin < v.begin;
	}
	else {
		return u.end < v.end;
	}
}

int main() {
	int n;
	cin >> n;
	vector<Meeting> a(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i].begin >> a[i].end;
	}
	sort(a.begin(), a.end(), compare);
	int now = 0;
	int ans = 0;
	for (int i = 0; i < a.size(); i++) {
		if (now <= a[i].begin) {
			now = a[i].end;
			ans += 1;
		}
	}
	cout << ans << endl;

	return 0;
}

왜 이렇게 풀었는지 아직 감이 잘 안잡힌다... 특히 for문 안의 내용이 감이 전혀 없다. now 가 작으면 end를 붙여주고 1개 더하라는게 무슨말일까

'[IT] > 백준' 카테고리의 다른 글

[백준] 10219번 Meats On The Grill  (0) 2019.06.08
[백준] 2346번 풍선 터뜨리기  (0) 2019.06.08
[백준] 1946번 신입사원  (0) 2019.06.02
[백준] 1541번 잃어버린 괄호  (0) 2019.06.01
[백준] 2217번 로프  (0) 2019.06.01
Comments