반응형
<문제 소개>
<소스 코드>
#include <string>
#include <vector>
#include <map>
using namespace std;
vector<int> solution(vector<string> name, vector<int> yearning, vector<vector<string>> photo) {
vector<int> answer;
map<string, int> scores;
for(int i = 0 ; i < name.size(); i++)
{
// 이름별 그리움 점수 저장
scores[name[i]] = yearning[i];
}
for(int i = 0; i < photo.size(); i++)
{
answer.push_back({0});
for(int j = 0; j < photo[i].size(); j++)
{
string curName = photo[i][j];
answer[i] += scores[curName];
}
}
return answer;
}
<풀이과정>
1. 각 이름별 그리움 점수를 저장할 맵 scores를 선언한다.
2. 벡터 name을 돌면서 name의 각 원소를 key로, 벡터 yearning의 각 원소를 value로 scores에 저장한다.
3. 점수를 매길 이중벡터 photo를 돌면서 현재이름이 가진 점수를 scores를 통해 알아내고 해당 값을 answer에 저장한다.
<코멘트>
맵을 활용해 어렵지 않게 풀었다!
<제출결과>