풀이
알고리즘은 엄청 간단하다.
N명의 이름을 입력받아서 정렬 후, M명의 이름을 입력받아 이진탐색으로 찾은 명단과 총 인원을 출력하면 된다.
하지만, 이를 C로 구현하는 것은 끔찍하다...
소스코드
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int N, M, i;
scanf("%d %d", &N, &M);
vector<string> v1(N), v2;
char name[21];
for (i = 0; i < N; i++){
scanf("%s", name);
v1[i] = name;
}
sort(v1.begin(), v1.end());
for (i = 0; i < M; i++) {
scanf("%s", name);
if (binary_search(v1.begin(), v1.end(), name))
v2.push_back(name);
}
sort(v2.begin(), v2.end());
printf("%d\n", v2.size());
for (i = 0; i < v2.size(); i++)
printf("%s\n", v2[i].c_str());
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 10995] 별 찍기 - 20 [C] (0) | 2021.08.06 |
---|---|
[백준 1557] 제곱 ㄴㄴ [C] (2) | 2021.08.06 |
[백준 1260] DFS와 BFS [C] (0) | 2021.08.05 |
[백준 2630] 색종이 만들기 [C] (0) | 2021.08.05 |
[백준 1026] 보물 [C] (0) | 2021.08.05 |