이진 탐색 2

[P5] 백준 가장 긴 증가하는 부분 수열 5 C++ 이분 탐색, lower_bound

리뷰lower_bound를 통해 가장 긴 증가하는 부분 수열을 만들고, 해당 수열의 길이와 변경 내역 정보를 저장 및 역추적 하여 LIS를 출력하는 문제https://www.acmicpc.net/problem/14003관련 문제가장 긴 증가하는 부분 수열 4 : https://www.acmicpc.net/problem/14002 문제 풀이n과 100만 크기 정수 배열 nums, 정수형 벡터 temp, lis를 전역 변수로 초기화 해준다.n값을 입력 받고 nums에 각 수열 정보를 입력 받은 뒤 BS 함수를 실행 시켜준다.pos벡터를 n크기로 초기화 해 준 뒤 n개의 숫자를 모두 탐색해 준다.만약 temp에 i번째 수이상이 존재한다면 해당 위치를 i로 바꿔준다. 없다면 temp의 뒤에 i를 추가해 준다.매..

바이너리 서치 BinarySearch 이진 탐색 C++ Parametric Search

개요정렬된 데이터에서 탐색 범위를 반씩 줄여가면서 빠르게 특정값을 찾는 알고리즘데이터가 주어졌을때 우선 정렬이 된 상태로 만들어 주어야 한다. algorithm을 include하고 sort를 진행한다.이진 탐색 Flow탐색 범위에서 시작 지점 index를 left, 종료 지점 index를 right로 지정한다.(left + right) / 2를 통해 left와 right의 중간 index, mid 값을 구해준다.찾으려는 수와 배열 내에서 mid 인덱스를 가진 수를 비교해 준다.만약 찾으려는 수가 mid 인덱스를 가진 수보다 작을 경우 mid보다 왼쪽, 클 경우 오른쪽에 있는 것이다.만약 왼쪽에 있을 경우 left는 그대로 두고 right를 mid로 교체해 준다.오른쪽에 있을 경우 right는 그대로 두고..

728x90