Study/Baekjoon

[백준/C++] 10816 숫자 카드2

에린_1 2024. 2. 25. 18:37
728x90

10816 숫자 카드2

#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	vector<int> card_arr;
	int card_num;
	cin >> card_num;
	for (int i = 1; i < card_num+1; ++i)
	{
		int tmp;
		cin >> tmp;
		card_arr.push_back(tmp);
	}
	sort(card_arr.begin(), card_arr.end());
	int m;
	cin >> m;
	for (int i = 0; i < m; ++i)
	{
		int tmp;
		cin >> tmp;
		
		cout << upper_bound(card_arr.begin(), card_arr.end(),tmp) - lower_bound(card_arr.begin(), card_arr.end(), tmp)  << " ";
	}

	return 0;
}
  • upper_bound와 lower_bound를 쓰면 쉽게 풀 수 있다.
  • 위 함수들의 개념을 잘 이해하고 있어야한다.
  • 12345667 일때 upper_bound( , ,4) 는 4의 값을 반환하고, lower_bound는 3의 값을 반환하기 때문에 둘의 차이를 구하면 그 숫자의 개수가 된다.
728x90

'Study > Baekjoon' 카테고리의 다른 글

[백준/C++] 1003 피보나치 함수  (0) 2024.02.26
[백준/C++] 1654 랜선자르기  (0) 2024.02.26
[백준/C++] 9012 괄호  (0) 2024.02.25
[백준/C++] 9012 괄호  (0) 2024.02.23
[백준/C++] 10773 제로  (0) 2024.02.23