백준 10816 c++

magicdrill·2024년 3월 27일
0

백준 문제풀이

목록 보기
216/654

백준 10816 c++

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

using namespace std;

int input(int lower, int upper);
void input_vector(vector <int> &card, int size);
void sort_vector(vector <int> &card);
void print_result(vector <int> &card1, int N, vector <int> &card2, int M);

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

	int N, M;
	vector<int> card1;
	vector<int> card2;
	
	N = input(1, 500000);
	input_vector(card1, N);
	M = input(1, 500000);
	input_vector(card2, M);
	sort_vector(card1);
	print_result(card1, N, card2, M);

	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_vector(vector <int> &card, int size)
{
	int i;
	int temp;

	for (i = 0; i < size; i++)
	{
		temp = input(-10000000, 10000000);
		card.push_back(temp);
	}

	return;
}

void sort_vector(vector <int> &card)
{
	//cout << "sort 실행" << endl;
	sort(card.begin(), card.end());

	return;
}

void print_result(vector <int> &card1, int N, vector <int> &card2, int M)
{
	//cout << "print_result 실행" << endl;
	int i;
	int temp;

	for (auto i = 0; i < M; i++)
	{
		temp = card2[i];
		cout << upper_bound(card1.begin(), card1.end(), temp) - lower_bound(card1.begin(), card1.end(), temp) << " ";
	}
	cout << "\n";

	return;
}

0개의 댓글