이번 문제 역시 해쉬 맵을 이용하여 풀었는데, 이름(key)에 따른 그리움의 점수(value)를 취급하는 map을 사용하였다.
그 다음 photo배열을 순회하며, map에서 이름을 찾고 이름에 따른 그리움의 점수를 더 해주는식으로 문제를 풀었다.
#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> m;
for(int i=0;i<name.size();i++)
m[name[i]] = yearning[i];
for(int i=0;i<photo.size();i++)
{
int sum = 0;
for(int j=0;j<photo[i].size();j++)
sum += m[photo[i][j]];
answer.push_back(sum);
}
return answer;
}
최근에 알고리즘을 복습하던 도중 내가 해쉬 맵 개념은 잘 알고 있지만, 사용법을 모르다는 사실을 알게되었다. 그래서 해쉬 맵 관련된 문제를 집중적으로 풀어보고 있는 중이다.