본문 바로가기

Algorithm/자료구조

(C++) - 백준(BOJ) 10546번 : 배부른 마라토너

반응형

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

 

10546번: 배부른 마라토너

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

www.acmicpc.net

map을 이용하는 문제였습니다.

 

 

📕 풀이방법

📔 입력 및 초기화

 이름을 key, 이름이 나온 빈도 수를 value로 한 map변수 m을 선언한 뒤 n만큼 이름을 입력받을 때마다 해당하는 key의 value값을 1씩 증가시켜줍니다.

 

📔 풀이과정

 1. n-1만큼 입력받으면서 해당 이름의 빈도수를 1씩 감소시켜줍니다.

 2. 모두 입력 받은 뒤 m의 size만큼 loop를 돌면서 빈도수가 0이아니라면 ans라는 문자열 변수에 정답을 저장합니다.

 

📔 정답출력

 ans를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int n;
map <string,int> m;
string s;
int main(){
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> s;
        m[s]++;
    }
    string ans;
    for(int i = 0; i < n - 1; i++){
        cin >> s;
        m[s]--;
    }
    for(auto el : m) if(el.second != 0) ans = el.first;
    cout << ans << '\n';
}