알고리즘 연습

C++ 1931 회의실 배정

728x90

문제를 이해하는것도 한참걸렸다.

#include <iostream>
#include<vector>
#include <algorithm>

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cout.tie(0);
	cin.tie(0);

	int n;
	cin >> n;
	vector<pair<int, int>>time(n);
	int savetime = 0; int cnt = 0;

	for (int i = 0; i < n;i++)
		cin >> time[i].second >> time[i].first;
	sort(time.begin(), time.end());
	for (int i = 0; i < n; i++) {
		if (savetime<=time[i].second) {
			savetime = time[i].first;
			cnt++;
		}
	}
	cout << cnt;
	
}

이것 역시 다른 블로그의 이해가 쉬운 답을 보고 이해하고 작성했다.

끝나는 시간을 기준으로 정렬을 하고 가장 빨리 끝나는 시간대를 기준으로 정렬된 순서대로 시작시간이 크거나 같으면 savetime을 초기화 해준다.

728x90

'알고리즘 연습' 카테고리의 다른 글

C++ 1977 완전제곱수  (0) 2021.10.11
C++ 1541 잃어버린 괄호  (0) 2021.10.07
C++ 11047 동전0 (그리디알고리즘)  (0) 2021.10.06
C++ 11650 좌표 정렬하기  (1) 2021.10.01
C++ 1427 소트 인사이드  (0) 2021.09.30