코딩테스트/프로그래머스
[프로그래머스] 완주하지 못한 선수 (C++)
Deff_a
2024. 11. 5. 18:56
문제
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
이 문제는 참가자(participant) 중 완주(completion)하지 못한 한 사람을 찾는 문제이다.
unordered_map을 사용하여 완주한 사람의 수를 저장한다.
이후, 참가자들을 탐색하여, unordered_map의 값이 0인 사람을 찾은 뒤 return한다.
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
unordered_map<string, int> completionMap;
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
for(int i = 0; i < completion.size(); i++){
completionMap[completion[i]]++;
}
for(int i = 0; i< participant.size(); i++){
if(completionMap[participant[i]] == 0){
answer = participant[i];
break;
}
completionMap[participant[i]]--;
}
return answer;
}
unordered_map을 사용한 이유
unordered_map은 정렬 연산을 하지 않기 때문에 map보다 연산 속도가 빨라서 사용했다.

