#include <string>
#include <vector>
#include <map>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
map<string, int> partNames;
map<string, int> compNames;
for(int i = 0; i < participant.size(); i++)
partNames[participant[i]]++;
for(int i = 0; i < completion.size(); i++)
compNames[completion[i]]++;
for(auto iter : compNames)
{
partNames[iter.first] -= iter.second;
}
for(auto iter : partNames)
{
if(partNames[iter.first] != 0)
answer = iter.first;
}
return answer;
}
풀이
- 맵으로 해당 string값을 가지는 것에 개수를 넣는다.
- 마라톤에 참여한 키값을 가진 것의 전체 선수리스트에 있으면 갖고 있는 수만큼 뺀다.
- 출전한 선수를 뺀 선수리스트 중에 아직 있는 선수가 있다면 출전하지 않는 선수이다.
- Range기반 for문을 사용하여 전체 순회를 한다.
도움 문헌
Range기반 for루프 : chanheess.tistory.com/78?category=1155191
map에 대하여 : life-with-coding.tistory.com/305
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 위장 해시 (0) | 2021.04.26 |
---|---|
[C++] 프로그래머스 전화번호 목록 해시 (0) | 2021.04.24 |
[C++] 프로그래머스 카펫 완전탐색 (0) | 2021.04.23 |
[C++] 프로그래머스 소수찾기 완전탐색 (0) | 2021.04.23 |
[C++] 프로그래머스 모의고사 완전탐색 (0) | 2021.04.21 |