백준 1764 c++

magicdrill·2024년 2월 29일

백준 문제풀이

목록 보기
65/673

백준 1764 c++

#include <iostream>
#include <algorithm>
#include <map>
#include <vector>
#include <string>

using namespace std;

int input(int lower, int upper);
void input_map_list(map <string, bool>& list, int size);
int check_result(map <string, bool>& list, int size, vector <string>& answer, int size_answer);
void sort_vector(vector <string>& list);
void print_result(int answer, vector<string>& list);

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N, M, count = 0;
	map <string, bool> list;
	vector <string> answer;

	N = input(1, 500000);
	M = input(1, 500000);
	input_map_list(list, N);
	count = check_result(list, N, answer, M);
	sort_vector(answer);
	print_result(count, answer);

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void input_map_list(map <string, bool>& list, int size)
{
	int i;
	string temp;

	for (i = 0; i < size; i++)
	{
		cin >> temp;
		if (temp.length() <= 20)
		{
			//list[temp] = true;
			list.insert(make_pair(temp, true));
		}
		else
		{
			i--;
		}
	}

	return;
}

int check_result(map <string, bool>& list, int size, vector <string>& answer, int size_answer)
{
	int i;
	int count = 0;
	string temp;

	for (i = 0; i < size_answer; i++)
	{
		cin >> temp;
		if (temp.length() <= 20)
		{
			if (list[temp] == true)
			{
				answer.push_back(temp);
				count++;
			}
			else
			{
				;
			}
		}
		else
		{
			i--;
		}
	}

	return count;
}

void sort_vector(vector <string> &list)
{
	sort(list.begin(), list.end());

	return;
}

void print_result(int answer, vector<string>& list)
{
	int i;

	cout << answer << "\n";
	for (i = 0; i < list.size(); i++)
	{
		cout << list[i] << "\n";
	}

	return;
}

0개의 댓글