본문 바로가기
개발/알고리즘 풀이...

[백준] 1764번 문제 풀이

by p_human 2021. 3. 14.

www.acmicpc.net/problem/1764

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

풀이 : 

1. 입력으로 주어지는 n + m번의 반복문을 돌면서 문자열을 입력

2. 문자열을 입력받으면서 벡터에 문자열들을 저장

3. 저장한 벡터를 나중에 출력할 때 사전순으로 출력하기 위해서 오름차순 형태로 정렬

4. 출력을 위한 벡터를 또 만들어서 정렬된 벡터의 크기만큼 반복문을 돌면서 듣보잡을 벡터에 추가

5. 듣보잡의 수가 이미 벡터의 크기만큼 정해졌기 때문에 그 벡터의 크기를 출력하고 이전에 저장한 출력을 위한 벡터를 반복문을 돌면서 출력해주면 끝

 

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main()
{
    int n, m;
    cin >> n >> m;
    string s;
    vector<string> v;
    for (int i = 0; i < n + m; i++) {
        cin >> s;
        v.push_back(s);
    }
    sort(v.begin(), v.end());
    vector<string> r;
    for (int i = 1; i < n + m; i++) {
        if (v[i].compare(v[i - 1]) == 0)
            r.push_back(v[i++]);
    }
    cout << r.size() << "\n";
    for (int i = 0; i < r.size(); i++) {
        cout << r[i] << "\n";
    }
}

 

'개발 > 알고리즘 풀이...' 카테고리의 다른 글

[백준] 11650번 문제 풀이  (0) 2021.04.11
[백준] 4949번 문제 풀이  (0) 2021.03.14
[백준] 1181번 문제 풀이  (0) 2021.03.13
[백준] 4796번 문제 풀이  (0) 2021.03.12
[백준] 1946번 문제  (0) 2021.03.10