코딩테스트/C++
[ 백준 BOJ ] 10775 번 - 공항 (C++)
최-코드
2024. 3. 25. 11:26
https://www.acmicpc.net/problem/10775
10775번: 공항
예제 1 : [2][?][?][1] 형태로 도킹시킬 수 있다. 3번째 비행기는 도킹시킬 수 없다. 예제 2 : [1][2][3][?] 형태로 도킹 시킬 수 있고, 4번째 비행기는 절대 도킹 시킬 수 없어서 이후 추가적인 도킹은 불
www.acmicpc.net
gi가 주어졌을 때 그리디 방식으로, 공항에 남아있는 게이트 중에 가장 큰 수에 비행기를 할당하면 된다. 공항에 남아있는 게이트의 번호를 찾을 때는 upper_bound()를 사용하거나 이진 탐색으로 찾으면 된다.
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <memory.h>
#include <vector>
#include <queue>
#define endl '\n'
#define ll long long
#define pii pair<int, int>
using namespace std;
vector<int> store;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int G,P;
cin>>G>>P;
for(int i = 1; i<=G; i++){
store.push_back(i);
}
int g;
int ans=0;
for(int i=1; i<=P; i++){
cin>>g;
int position = upper_bound(store.begin(), store.end(), g)-store.begin()-1;
if(position<0)
break;
ans++;
store.erase(store.begin()+position);
}
cout<<ans<<endl;
return 0;
}