# Sparse Arrays (Arrays)
[문제]
[코드]
vector<int> matchingStrings(vector<string> strings, vector<string> queries) {
map<string, int> m;
for (int i = 0; i < queries.size(); i++)
m[queries[i]] = 0;
for (int i = 0; i < strings.size(); i++)
if (m.find(strings[i]) != m.end())
m[strings[i]] += 1;
vector<int> result;
for (int i = 0; i < queries.size(); i++)
result.push_back(m[queries[i]]);
return result;
}
[코드설명]
queries 목록에 포함된 단어가 strings 목록 안에 몇 번 나타나는지 확인하는 문제다.
C++의 map STL를 사용해서 해결했다.
queries의 단어를 map에 key로 설정하고 value는 0으로 설정했다.
그 후에 strings 목록에 있는 단어들을 map에서 탐색하여 존재하는 경우 value를 1증가시켰다.
마지막으로 result 벡터에 map의 key에 해당하는 value를 할당하고, 반환했다.
[채점 결과]
'알고리즘' 카테고리의 다른 글
[HackerRank] Cycle Detection (0) | 2021.09.25 |
---|---|
[HackerRank] Simple Array Sum (0) | 2021.09.18 |
[HackerRank] Solve Me First (0) | 2021.09.11 |
[HackerRank] Balanced Brackets (0) | 2021.09.11 |
[HackerRank] Correctness and the Loop Invariant / Running Time of Algorithms (0) | 2021.08.28 |