[백준 10816] 숫자 카드 2
카테고리: BOJ
난이도
실버 IV
📜문제

🌞풀이 ⭕
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
	int N = 0;
	cin >> N;
	vector<int> v1(N);
	for (int i = 0; i < N; i++)
	{
		cin >> v1[i];
	}
	int M = 0;
	cin >> M;
	vector<int> v2(M);
	for (int i = 0; i < M; i++)
	{
		cin >> v2[i];
	}
	sort(v1.begin(), v1.end()); // upper lower bound 함수를 쓰기 위해 오름차순 정렬
	int ans = 0;
	for (int i = 0; i < M; i++)
	{
		ans = upper_bound(v1.begin(), v1.end(), v2[i]) - lower_bound(v1.begin(), v1.end(), v2[i]);
		cout << ans << " ";
	}
	return 0;
}
일정한 범위를 주고 그 범위 안에 몇개의 원소가 있는지를 파악할 때 upper_bound와 lower_bound 함수를 사용하면 쉽게 파악이 가능하다.
 
      
댓글남기기