[PROGRAMMERS]救命ボート(レベル2)
救命ボート(レベル2)
質問リンク:コーディングテスト練習>欲張り>救命ボート
問題を理解する
アルゴリズム実装
一致条件を考慮する必要があります.
そうだと思った.一番軽い人と一番軽い人が一緒に船に乗れないなら、
一番重い人は自分で座るしかないからです.
もしそうなら、二人を搭乗させて、船を1隻数えて、一番重い人+一番軽い人
limitより大きい場合は、一人で搭乗し、ボートをカウントします.
アルゴリズム#アルゴリズム#
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
int n = people.size();
int end = n - 1;
int beg = 0;
sort(people.begin(), people.end(), greater<int>());
while (beg <= end) {
if (people[beg] + people[end] <= limit) {
++beg;
--end;
answer += 1;
}
else {
++beg;
answer += 1;
}
}
return answer;
}
Reference
この問題について([PROGRAMMERS]救命ボート(レベル2)), 我々は、より多くの情報をここで見つけました https://velog.io/@yamkim/PROGRAMMERS-구명보트Level2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol