이분탐색을 적용하여 찾고자 하는 값의 index를 반환해주는 함수 (algorithm 헤더 적용 필수! )
1. lower_bound(하한)
찾고자 하는 그 값 이상인 값의 인덱스 번호를 반환해줌
sort(idx.begin(), idx.end()); //오름차순 정렬 필수
cout<<lower_bound(idx.begin(), idx.end(), a) - idx.begin() ; //인덱스 반환 , a는 찾고자 하는 그 값
2. upper_bound(상한)
찾고자 하는 그 값 초과인 값의 인덱스 번호를 반환해줌
sort(idx.begin(), idx.end());//오름차순 정렬
cout<< upper_bound(idx.begin(), idx.end(), a) - idx.begin();//a는 찾고자 하는 값
3. 중복제거
v.erase(unique(v.begin(),v.end()),v.end());
알고리즘을 짜다가 벡터관련 헷갈리고, 몰랐던 것들을 발견해서 간단하게 사용법을 정리했다
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
이 문제를 풀다가 몰랐던 것 들이다
'Algorithm' 카테고리의 다른 글
[백준 1992] 쿼드트리 (0) | 2022.07.10 |
---|---|
[백준 14503] 로봇 청소기 (0) | 2022.07.03 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2022.07.01 |
[프로그래머스] 124 나라의 숫자 (0) | 2022.06.30 |
[백준 1946] 신입 사원 (0) | 2022.06.30 |