[백준] 10546번: 배부른 마라토너

2022. 9. 23. 14:39TIL💡/Algorithms

https://www.acmicpc.net/problem/10546

 

10546번: 배부른 마라토너

마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명

www.acmicpc.net

어렵지 않은 문제이나  한 부분을 놓치면 틀리기 쉽다.

문제의 조건에서 동명이인이 있을 수 있다는 점에서 multiset을 써야 한다.

그리고 완주한 마라토너를 제거하는데, 이 때 erase() 함수를 쓰면 value에 해당하는 값을 모두 제거한다.

따라서 erase를 쓰지 않고, iterator를 하나 찾아서 이를 제거해야 한다.

 

#include <set>
#include <iostream>

using namespace std;
multiset<string> s;
int main() {
	int n;
	cin >> n;

	for(int i = 0;i < n;i++) {
		string name;
		cin >> name;
		s.insert(name);
	}

	for(int i = 0;i < n - 1;i++) {
		string name;
		cin >> name;
		auto it = s.find(name);
		s.erase(it);
	}

	cout << *s.begin() << '\n';
}