Luck Balance

108번뇌·2021년 8월 26일

https://www.hackerrank.com/challenges/luck-balance/problem

가중치 1 / 가중치 0 인 게임들이 각각 있는데,
이 중에서 최대 k번 질 수 있을때 점수의 max값 구하기임.
지면 + 이기면 - 점수

int luckBalance(int k, vector<vector<int>> contests) {
    vector<int> vImp;
    vector<int> vNImp;
    int answer(0);
    
    for(int i=0; i<contests.size(); i++)
    {
        if(contests[i][1]==1)       vImp.push_back(contests[i][0]);
        else                        vNImp.push_back(contests[i][0]);
    }
    
    sort(vImp.begin(), vImp.end(), [](int a, int b){
      return a>b;  
    });
    
    sort(vNImp.begin(), vNImp.end(), [](int a, int b){
      return a>b;  
    });
    
    for(auto elem : vNImp)
    {
        answer+=elem;
    }
    
    for(int i=0; i<vImp.size(); i++)
    {
        if(i<k)     answer+=vImp[i];
        else        answer-=vImp[i];
    }
    
    return answer;
}
profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글