문제

몸무게를 순서대로 정렬한 후, 맨 앞과 맨 뒤를 더한 값이 구명보트의 무게 제한 이하인지 계산해보면 된다. 만약 구명보트보다 크다면 뒤에 있는 사람은 무조건 구명보트를 혼자 타야 한다.

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

int solution(vector<int> people, int limit) {
	int answer = 0;
	sort(people.begin(), people.end());
	deque<int> dq(people.begin(), people.end());

	while (!dq.empty()) {
		if (dq.size() == 1) {
			answer++;
			dq.pop_back();
			break;
		}

		if (dq.front() + dq.back() <= limit) dq.pop_front();
		dq.pop_back();
		answer++;
	}
	return answer;
}