https://www.acmicpc.net/problem/18870
1. 시행착오
답 : 해당원소보다 작은 원소의 갯수
upper_bound - lower_bound 하면 정답이 아니다...
lower-begin 이 정답이다.
2. 전체코드
#include <bits/stdc++.h>
using namespace std;
int n,m;
vector<int> v1,v2;
set<int> s;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
while (n--) {
int temp;
cin >> temp;
v1.push_back(temp);
s.insert(temp);
}
for (auto i : s) {
v2.push_back(i); //중복제거한 벡터
}
sort(v2.begin(), v2.end());
for (auto i : v1) {
cout << lower_bound(v2.begin(), v2.end(), i)
- v2.begin() << " ";
}
return 0;
}
'Algorithm > 이분탐색' 카테고리의 다른 글
프로그래머스 순위검색 c++ // 이분탐색, db설정 (0) | 2024.01.11 |
---|---|
백준 1654 랜선자르기 c++ // 이분탐색, parametric search (0) | 2024.01.04 |
백준 2295 세수의합 c++ // 이분탐색 발상 (0) | 2024.01.03 |
백준 10816 숫자카드2 c++ // 이분탐색, upper_bound, lower_bound (0) | 2024.01.02 |
백준 1920 수찾기 c++ // 이분탐색 stl (0) | 2024.01.01 |