C | C++/Softeer 문제풀이

Softeer 강의실 배정 C/C++ 문제풀이 (level 3)

zyeon 2023. 11. 3. 21:41

https://softeer.ai/practice/6291

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

김교수는 강의실 1개에 최대한 많은 강의를 배정하려고 한다. 배정된 강의는 서로 겹치지 않아야 하며 수업시간의 길이와 상관없이 최대한 강의를 많이 배정하라. 단, 두 강의의 시작시간과 종

softeer.ai

 

 

 

<cpp 문제풀이>

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(int argc, char** argv)
{
  int n;
  int now=0;
  int cnt=0;
  int start,end;
  vector <pair<int,int>>v;
  cin>>n;
  for(int i=0;i<n;i++){
    cin>>start>>end;
    v.push_back({end,start});
  }
  sort(v.begin(),v.end());
  
  for(int i=0;i<n;i++){
   
   
    if(v[i].second>=now){
      cnt++;
      now=v[i].first;
    }
    
  }
  cout<<cnt;
   return 0;
}

 

비슷한 문제를 풀어봤어서 쉽게 풀었던것 같아요!

원래 2차원 벡터를 많이 사용하는데 이번에 pair를 사용하면서 더 쉽고 간결하게 코드를 짤 수 있었습니다.


다른 의견이나 질문 언제나 환영입니다!!