

이 문제는 내가 생각하는 풀이가 비효율적인 것 같아 인터넷에서 서칭하여 풀이를 참고 했다.
풀이 방법은
#include <string>
#include <vector>
#include <map>using namespace std;map <string,int> wantItems;
bool check(map<string,int > m){
for(auto u: wantItems){
if(m.find(u.first) == m.end() ){
//할인 품목에 원하는 품목이 없을 경우
return false;
}else if(m[u.first] != u.second ){
//수량이 일치하지 않을 경우
return false;
}
}
return true;
}
int solution(vector<string> want, vector<int> number, vector<string> discount) {
int answer = 0 ;
//원하는 할인 품목과 갯수 맵핑
for(int i = 0 ; i < want.size() ; i++ ){
wantItems[want[i]] = number[i];
}
for(int i = 0 ; i <= discount.size()-10 ; i++ ){
map <string,int > m;
for(int j = i ; j < i +10 ; j++ ){
m[discount[j]]++;
}
answer+=check(m);
m.clear();
}
return answer;
}