코딩 공부 - 프로그래머스 - 구명보트
문제
설명
- 최대 2명을 태울 수 있는 구명보트를 가장 적게 사용하여 모든 사람을 구출하는 경우의 최소값을 구하는 문제
코드
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
// 몸무게가 낮은 순으로 정렬
sort(people.begin(), people.end());
int start = 0;
int end = people.size() - 1;
for(;;) {
if (start > end) {
break;
}
// 몸무게가 높은 사람부터 배에 태운다
// 몸무게가 낮은 사람이 같이 탈 수 있으면 같이 처리
if (people[end] + people[start] <= limit) {
answer++;
start++;
end--;
} else {
answer++;
end--;
}
}
return answer;
}
공유하기
Twitter Facebook LinkedIn댓글을 남기시려면 Github 로그인을 해주세요