본문 바로가기

온라인 코딩/연관 컨테이너(associate container)

[프로그래머스] 완주하지 못한 선수

 

 

 

 

 

문제

 

소스코드

#include <string>
#include <vector>
#include<set>
using namespace std;

string solution(vector<string> participant, vector<string> completion) {
multiset<string> set_partic;
	multiset<string> set_compl;

	string answer = "";
	for (auto& iter : participant) {
		set_partic.insert(iter);
	}
	for (auto& iter : completion) {
		set_compl.insert(iter);
	}

	for (auto& iter : set_partic) {

		if (set_compl.count(iter)) {

			auto par_result = set_partic.count(iter);
			auto compl_result = set_compl.count(iter);

			if (par_result - compl_result != 0) {
				return iter;
			}

		}
		else
			return iter;
	}
}

 

 

후기

예전에 풀었던 문제지만 풀었던 문제 중 가장 해시다운 문제였다. 두 개의 Set을 비교해서 값이 있는지 없는지를 판단하였다. 기억으로는 효율성 테스트에서 꽤 애먹은걸로 기억한다.

 

 

 

 

출처 및 레퍼런스

문제 링크:https://programmers.co.kr/learn/courses/30/lessons/42576