article thumbnail image
Published 2021. 9. 18. 18:36

# 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를 할당하고, 반환했다.  

 

[채점 결과]

 

 

 

 

복사했습니다!