티스토리 뷰

Problem/BOJ

10546 - 배부른 마라토너

kesakiyo 2016. 11. 7. 20:08

여기를 클릭해주세요.

문제 링크


 

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

 

 

문제 요약


 

\(N\)개의 이름이 차례대로 주어진다.

그 뒤 \(N\)개의 이름 중 \(N - 1\)개가 차례대로 다시 주어진다.

이 때 다시 주어지지 않은 이름 한개를 찾는 문제다

 

 

문제 풀이

 

 

 

 


 

\(N\)이 최대 \(10^5\)이긴 하지만 한 이름의 길이가 최대 20밖에 안되기 때문에 \(map\)을 사용해 쉽게 해결할 수 있다.

한가지 주의할 점은 이름이 같은 사람이 존재하기 때문에 동일한 이름의 수를 세어주어야 한다.

 

 

소스 코드

 

 

 

 


 

더보기

 

#include <stdio.h> #include <map> #include <string>  using namespace std;  map<string, int> cnt; int n; char str[22];  int main() {   scanf("%d", &n);   for (int i = 0 ; i < n ; ++i) {     scanf("%s", str);     ++cnt[str];   }   for (int i = 0 ; i < n - 1 ; ++i) {     scanf("%s", str);     int& c = cnt[str];     if (--c == 0) {       cnt.erase(str);     }   }   printf("%s\n", cnt.begin()->first.c_str()); }

 

 

 

 

 

 

 

'Problem > BOJ' 카테고리의 다른 글

2271 - 암호화 알고리즘의 약점  (0) 2016.11.09
3136 - 평면도  (0) 2016.11.09
9935 - 문자열 폭발  (3) 2016.11.08
2841 - 외계인의 기타 연주  (0) 2016.11.08
6135 - Cow Hurdles  (0) 2016.11.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함