문제 링크입니다: https://www.acmicpc.net/problem/10816
백준 10815번 숫자 카드(http://jaimemin.tistory.com/991)와 똑같은 문제였지만 개수까지 구해야해서 단순 이분 탐색을 이용할 경우 TLE가 발생합니다.
따라서, upper_bound와 lower_bound를 이용하여 개수를 파악해줘야합니다!
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<int> v(N);
for (int i = 0; i < N; i++)
cin >> v[i];
sort(v.begin(), v.end());
int M;
cin >> M;
for (int i = 0; i < M; i++)
{
int num;
cin >> num;
cout << upper_bound(v.begin(), v.end(), num) - lower_bound(v.begin(), v.end(), num) << " ";
}
cout << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 15809번 전국시대 (0) | 2018.11.18 |
---|---|
백준 2606번 바이러스 (2) | 2018.11.18 |
백준 2512번 예산 (0) | 2018.11.16 |
백준 10815번 숫자 카드 (0) | 2018.11.16 |
백준 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2018.11.16 |