처음에 탑승인원이 2명제한이라는 점을 까먹고 풀다가 시간을 날렸다. 생각해보면 가장 무거운 사람과 가장 가벼운 사람을 태워서 제한무게보다 작다면 보내면 되는 문제이다. 크게 어렵지 않다
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> people, int limit) {
sort(people.begin(), people.end());// 정렬
int answer = 0, idx = 0;
while (people.size() > idx) {// 모든사람을 다 보낼때 까지
int back = people.back();// 무거운 사람
people.pop_back();
if (people[idx] + back <= limit) {// 무거운 사람 + 가벼운 사람
idx++;
answer++;
} else {
answer++;
}
}
return answer;
}