lower_bound와 익숙해지기 2..
반환값이 iterator인 건 알겠는데 여기서 index는 어떻게 구하지...?에서 막혔다. 알고보니 iterator끼리 뺄셈 가능해서 v.begin()을 빼면 구할 수 있었다.
아.. 그리구 iterator 변수 만들고 싶어서 iterator tmp 이런 식으로 선언했는데 에러가 떴다. 검색해보니 std::vector<int>::iterator tmp 이렇게 써야 하는 것 같다.. 얘는 왜 이렇게 생겼지
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
scanf("%d", &n);
vector <int> v(n);
for(int i = 0; i < n; i++)
scanf("%d", &v[i]);
sort(v.begin(), v.end());
int m;
scanf("%d", &m);
for(int i = 0; i < m; i++){
int input;
scanf("%d", &input);
int tmp = upper_bound(v.begin(), v.end(), input) - lower_bound(v.begin(), v.end(), input);
printf("%d ", tmp);
}
return 0;
}
'백준' 카테고리의 다른 글
2003 수들의 합 2 (0) | 2019.11.30 |
---|---|
16510 Predictable Queue (0) | 2019.11.25 |
10815 숫자 카드 (0) | 2019.11.25 |
15885 고장난 시계 (0) | 2019.11.23 |
1252 이진수 덧셈 (0) | 2019.11.23 |