문제
코딩테스트 연습 - 구명보트 | 프로그래머스
무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모
programmers.co.kr
힌트
- 최대 2명 (한 명을 임의로 택했을 때 다른 한 명은 누구를 태우면 가장 좋을까?)
소스 코드 (첫번째 시도)
// [프로그래머스] 구명 보트
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
std::sort(people.begin(), people.end());
while (!people.empty()) {
if((people[0] + people.back() <= limit) && (people.size() != 1)) people.erase(people.begin());
people.pop_back();
answer++;
}
return answer;
}
- 채점 결과 (90.0 / 100.0)
- 정확성 (75.0 / 75.0)
- 효율성 (15.0 / 25.0)
'알고리즘' 카테고리의 다른 글
[프로그래머스] (C++) 매칭 점수 (0) | 2019.12.16 |
---|---|
[프로그래머스] (C++) 숫자 게임 (0) | 2019.12.16 |
[프로그래머스] (C++) N진수 게임 (0) | 2019.12.12 |
[프로그래머스] (C++) 가장 큰 수 (0) | 2019.12.10 |
[프로그래머스] (C++) 피보나치 수 (0) | 2019.12.05 |