728x90
728x90
- 개발자 언어 선호도를 map 함수를 이용해서 해당 언어에 대한 값을 저장해준다.
- table의 string 벡터에서 처음 값을 title에 저장한다.
- 개발자에 따른 점수를 저장할 수 있는 벡터함수를 만든다.
- 해당 개발자가 선호하는 언어가 언어 선호도 표에 대한 값을 더해준다. 이때 더해줄때 순서에 따른 점수가 다르기 때문에 5점부터 시작해서 1점까지 순차적으로 곱해준다.
- 개발자에 따른 점수 벡터함수를 정렬한다. ( 첫번째는 점수, 두번째는 문자열 )
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <sstream>
using namespace std;
bool cmp(pair<string,int> p1, pair<string,int> p2)
{
if(p1.second == p2.second) return p1.first < p2.first;
return p1.second > p2.second;
}
string solution(vector<string> table, vector<string> languages, vector<int> preference) {
map<string,int> m;
vector<pair<string,int>> v;
for(int i=0 ; i < languages.size() ; i++) m[languages[i]] = preference[i];
for(int i=0 ,count = 5; i < table.size(); i++,count = 5)
{
stringstream ss(table[i]);
string temp,title;
ss >> title;
v.push_back({title,0});
while(ss >> temp,count--)
{
if(m[temp]) v[i].second += (m[temp] * count);
count --;
}
}
sort(v.begin(),v.end(),cmp);
return v[0].first;
}
728x90
728x90