[백준 10816] 숫자 카드 2

Date:     Updated:

카테고리:

태그:

난이도

실버 IV

📜문제

https://www.acmicpc.net/problem/10816

image

🌞풀이 ⭕

#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_boundlower_bound 함수를 사용하면 쉽게 파악이 가능하다.

❗주의

맨 위로 이동하기

BOJ 카테고리 내 다른 글 보러가기

댓글남기기