코딩테스트/백준_실버 [C++][백준 10816] 숫자 카드 2 - [문제] https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [문제 풀이] sort와 lower bound upper bound 를 이용해서 C++ 에서는 쉽게 구현이 가능하다. lower bound나 upper bound를 쓰기 위해서 sort를 해주자.(9) 구하는 값은 현재 숫자를 넘어서는 수 - 현재 숫자가 처음 나온 위치이기도 하므로 upper bound - lower bound로 구하자.(11) [코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include<iostream> #include<vector> #include<algorithm> #define endl "\n" using namespace std; void solve(vector<int>& sangCard, vector<int>& requestCard){ sort(sangCard.begin(),sangCard.end()); for(int i = 0;i<requestCard.size();i++){ cout<<upper_bound(sangCard.begin(),sangCard.end(),requestCard[i]) - lower_bound(sangCard.begin(),sangCard.end(),requestCard[i])<<" "; } cout<<endl; } int main(){ int n; cin>>n; vector<int> sangCard(n); for(int i = 0;i<n;i++){ cin>>sangCard[i]; } int m; cin>>m; vector<int> requestCard(m); for(int i = 0;i<m;i++){ cin>>requestCard[i]; } solve(sangCard,requestCard); return 0; } Colored by Color Scripter cs 공유하기 게시글 관리 Yoon-1212 '코딩테스트 > 백준_실버' 카테고리의 다른 글 [C++][백준 14501] 퇴사 (0) 2022.09.23 [C++][백준 2630] 색종이 만들기 (0) 2022.09.14 [C++][백준 11053] 가장 긴 증가하는 부분 수열 (0) 2022.09.07 [C++][백준 2512] 예산 (0) 2022.09.07 [C++][백준 1072] 게임 (0) 2022.09.07 Contents 당신이 좋아할만한 콘텐츠 [C++][백준 14501] 퇴사 2022.09.23 [C++][백준 2630] 색종이 만들기 2022.09.14 [C++][백준 11053] 가장 긴 증가하는 부분 수열 2022.09.07 [C++][백준 2512] 예산 2022.09.07 댓글 0 + 이전 댓글 더보기