문제 링크 : https://www.acmicpc.net/problem/1764


두개의 벡터에 입력받아 하나하나 다 비교를 해보면 시간초과가 날것같아서 맵을 사용하여 풀었다.


1. 듣도못한 사람의 목록을 입력받아 map에 저장한다.

2. 보도못한 사람들의 목록을 입력받으며 map에 존재하는 이름인지 체크하고 존재한다면 벡터에 추가해준다.

3. 벡터를 sort해주고 벡터길이와 내용을 출력해준다.


맵은 처음 사용해봐서 너무 익숙치않았다.

다 풀고나서 같이 공부하는 동생의 소스를 봤는데 굳이 맵을 사용하지 않고 훨씬더 쉽게 풀어놨다.

비효윻적으로 푼것같지만 안써본 map을 써봤다는 것에 의미를 둬야겠다.


아래는 소스코드이다.




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
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
 
vector<string> v;
 
int main()
{
    int a, b;
    map<stringint> m;
    map<stringint>::iterator iter;
 
    cin >> a >> b;
 
    for (int i = 0; i < a; i++) {
        string tmp;
        cin >> tmp;
        m.insert(make_pair(tmp, 0));
    }
 
    for (int i = 0; i < b; i++) {
        string tmp;
        cin >> tmp;
        iter = m.find(tmp);
        if (iter != m.end()) {
            v.push_back(iter->first);
        }
    }
 
    cout << v.size() << "\n";
 
    sort(v.begin(), v.end());
 
    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << "\n";
    }
}
cs









'Algorithm > 백준' 카테고리의 다른 글

백준 2407 조합  (0) 2019.02.26
백준 10974 모든 순열  (0) 2019.02.25
백준 1779번 비숍  (0) 2019.01.29
백준 9663번 N-Queen  (0) 2019.01.28
백준 1325번 효율적인 해킹  (0) 2019.01.23

+ Recent posts