어흥
[해커랭크] Hash Tables: Ransom Note (C++) 본문
728x90
반응형
1. 주의할 점
- Map에 대해서 알고있어야 한다
- Magazine에 A 단어가 B개 있을 때, Note에 A 단어가 B개보다 많다면 No 출력
2. 구현
- Magazine에 있는 모든 단어를 Map에 <단어, 단어 개수> 형태로 저장한다
- Note에 있는 모든 단어를 Map에서 검색한다. 찾고자 하는 단어가 Magazine에 없거나 남아있는 개수가 없다면 No를 출력하고 이외의 경우에는 Yes를 출력한다
void checkMagazine(vector<string> magazine, vector<string> note) {
map<string, int> m;
string s;
for(int i=0;i<magazine.size();i++){
s = magazine[i];
if(m.find(s)!=m.end()) m[s]++;
else m[s]=1;
}
bool avail = true;
for(int i=0;i<note.size();i++){
s = note[i];
if(m.find(s)==m.end() || m[s]==0){
avail=false;
break;
}
else
m[s]--;
}
avail==true? cout<<"Yes" : cout<<"No";
}
728x90
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Sherlock and Anagrams (C++) (0) | 2021.02.16 |
---|---|
[해커랭크] Two Strings (C++) (0) | 2021.02.16 |
[해커랭크] Max Array Sum (C++) (0) | 2021.02.09 |
[해커랭크] Array Manipulation (C++) (3) | 2021.02.08 |
[해커랭크] Minimum Swaps 2 (C++) (0) | 2021.02.05 |
Comments