BOJ 1931 c++

Algorithm / / 2020. 7. 16. 16:00

알고리즘

BOJ 1931 회의실배정 c++

백준 1931


#include <bits/stdc++.h>
using namespace std;

# define X first
# define Y second

int n;
pair<int, int> s[100002];

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

    cin >> n;
    // 정렬의 편의를 위해 끝 시각, 시작 시각으로 받음.
    for (int i = 0; i < n; i++)
        cin >> s[i].Y >> s[i].X; 
    sort(s, s + n);
    int count = 0;
    int currentTime = 0;
    for (int i = 0; i < n; i++) {
        // 맨 처음에는 s[0]에 가장 끝나는 시간이 빠른 회의가 담김.
        if (currentTime > s[i].Y)
            continue;
        currentTime = s[i].X;
        count++;
    }
    cout << count;
    return 0;
}

그리디 알고리즘을 이용.
참명제는 먼저 끝나는 회의를 기준으로 회의공간을 예약하면 가장 많이 예약할 수 있다는 것.


max_element는 시작주소와 마지막주소 + 1을 넣으면 최대값이 담긴 곳의 주소를 리턴하는 함수.

'Algorithm' 카테고리의 다른 글

BOJ 11051 c++  (0) 2020.07.17
BOJ 11050 c++ 이항계수(1)  (0) 2020.07.17
BOJ 11047 c++  (0) 2020.07.16
BOJ 1912 c++  (0) 2020.07.16
BOJ 11053 c++  (0) 2020.07.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom