Koder / 박성훈
article thumbnail

https://www.acmicpc.net/problem/16435

 

16435번: 스네이크버드

첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다.

www.acmicpc.net

그리디 문제.

스네이크버드보다 높이가 작은 과일들을 먹는데에는 아무런 제한이 없기 때문에,

높이가 작은 과일들을 먼저 먹지 않을 이유가 없다.

입력으로 들어온 $h_i$를 정렬해서

작은순으로 먹게 하면 된다.

 

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

vector<int> v;

int main(){
	int N,M,k;
	cin >> N >> M;
	
	for(int i=0; i<N; i++){
		cin >> k;
		v.push_back(k);
	}
	
	sort(v.begin(), v.end());
	
	for(int i=0; i<N; i++){
		if(M >= v[i]){
			M++;
		}
	}
	
	cout << M;
	return 0;
}

반응형