알고리즘/BOJ

백준 10546번 배부른 마라토너

꾸준함. 2018. 11. 9. 19:44

문제 링크입니다: 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