일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 알고리즘
- 게임개발공모전
- 개발일지
- 프로그래머스
- unity
- 언리얼
- lower_bound
- c#
- 백준
- DFS
- 웅진씽크빅
- fsm
- 재귀
- 시리얼라이제이션
- unreal
- 유니티
- UI 자동화
- upper_bound
- 인프런
- 너비우선탐색
- 게임개발
- 이분탐색
- 안드로이드
- binary_search
- 운영체제
- 유한상태기계
- 이득우
- 구현
- c++
- Today
- Total
목록upper_bound (2)
초고교급 희망
개요 이분탐색의 개념자체는 쉽다. 심지어 stl에 이미 함수가 있어서 직접 구현할 필요조차 없다. 하지만 조금만 꼬아서 내도 문제 난이도가 저세상으로 간다. 그러니 코딩 테스트에서 킬러 문항으로 자주 출제되는 이분탐색 응용 문제 공략에 대해 알아보자! 이분탐색이란? 정렬되어 있는 배열에서 특정 데이터를 찾기 위해 탐색 범위를 절반으로 줄여가며 찾는 탐색 방법 시간 복잡도는 O(logN)이다. C++ STL의 이분탐색 시간 복잡도 STL에 있는 이분탐색 함수도 O(logN)이다. 헤더 파일 에 std::binary_search가 있다. 이분탐색을 하기 위해선 정렬이 필수인데 std::sort 또한 에 있다. binary_search template bool binary_search (ForwardItera..
찾고자하는 숫자가 얼마나 많이 있는지 구하는 문제였다. C++ STL에 있는 lower_bound와 upper_bound를 사용해도 좋지만 직접 구현하여도 좋다. 하지만 실제 시험에서는 제한 시간이 모자라거나, 긴장해서 실수할 수도 있기 때문에 STL을 쓰는 것이 더 좋을 것 같다. #include #include using namespace std; int n, m; int a[500001]; int lower_idx(int target, int n) { int st = 0; int ed = n; while (st < ed) { int mid = (st + ed) / 2; if (a[mid] < target) { st = mid + 1; mid = (st + ed) / 2; } else if (a[mi..