문제 링크입니다: https://www.acmicpc.net/problem/10546
map을 이용해서 이름에 대해 인덱스를 부여합니다.
같은 이름이 짝수번 나오면 마라톤을 완주한 것이고 홀수이면 마라톤을 완주 못한 것입니다.
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
map<string, int> m;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<pair<string, int>> v; //name, cnt
int idx = 0;
for (int i = 0; i < 2 * N - 1; i++)
{
string s;
cin >> s;
//처음 등장할 경우
if (!m.count(s))
{
m[s] = idx++;
v.push_back({ s, 0 });
}
//두번 이상 등장 시
else
v[m[s]].second++;
}
for(int i=0; i<v.size(); i++)
if (v[i].second % 2 == 0)
{
cout << v[i].first << "\n";
break;
}
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 5211번 가단조와 다장조 (0) | 2018.11.09 |
---|---|
백준 2890번 카약 (0) | 2018.11.09 |
백준 4949번 균형잡힌 세상 (11) | 2018.11.09 |
백준 5612번 터널의 입구와 출구 (0) | 2018.11.07 |
백준 9324번 진짜 메시지 (0) | 2018.11.07 |