#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
sort(people.begin(), people.end());
int i = 0, j = people.size()-1;
while(i<=j){
if(people[i]+people[j]<=limit){
i++;
j--;
answer++;
}else{
j--;
answer++;
}
}
return answer;
}
한 번에 두명이 탈 수 있다는 조건을 놓쳐서 쓸데없이 고민을 좀 더 했다.
한 번에 두명이 최대일 경우, 최선의 선택은 가장 큰 값과 가장 작은 값을 같이 태울 수 있는 경우 그렇게 하는 것이다.
정렬된 상태에서 앞에 있는 사람과 뒤에 있는 사람들 같이 태울 수 없는 경우, 모든 경우에서 뒤에 있는 사람과 같이 탈 수 없다 -> 혼자 타기
다른 사람 풀이를 보니까 for문으로 엄청 깔끔하게 짜신 분이 있었다.
놀랍게도 이 문제는 나 일병이고 규빈이 너가 전역 한달 반? 남은 병장일때 내가 너한테 풀라고 했던 문제 ㅎㅎㅎ 리트코드에 Boats to save people 문제인데 그때도 잘 풀었어!