https://www.acmicpc.net/problem/1764
문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
풀이
듣지 못한 사람과 보지 못한 사람을 입력받아 하나의 배열에 모두 저장하고 정렬한다.
듣지도 보지도 못한 사람은 정렬했을 때 두 번 이름이 불렸기 때문에 같은 이름이 붙어있다. (배열[i]==배열[i+1]) 이때 배열[i]의 이름을 정답을 저장할 배열에 하나씩 저장한다.
코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int N, M, count=0;
cin >> N >> M;
string arr[N+M], answer[N];
for(int i=0;i<N+M;i++)
cin >> arr[i];
sort(arr, arr+N+M);
for(int i=0;i<N+M-1;i++) {
if(arr[i]==arr[i+1]) {
answer[count] = arr[i];
count++;
}
}
cout << count << endl;
for(int i=0;i<count;i++)
cout << answer[i] << endl;
return 0;
}
'Koala - 13기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[BOJ/java] 6502번 동혁피자 (0) | 2024.01.20 |
---|---|
[백준/c++] 3181: 줄임말 만들기 (1) | 2024.01.20 |
[백준/C++] 10773번: 제로 (0) | 2024.01.16 |
[백준/Python] 1267번 핸드폰 요금 (0) | 2024.01.14 |
[백준/python] 10950번: A+B - 3 (0) | 2024.01.14 |