C++:: 프로그래머스 < 구명보트 >

jahlee·2023년 7월 7일
0

프로그래머스_Lv.2

목록 보기
71/106
post-thumbnail

처음에 탑승인원이 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;
}

0개의 댓글