1차원(signed) 실수 공간이 비는 곳 없이 임의의 크기를 가진 구간으로 나누어진다고 할 때, 한 실수가 어느 공간에 포함되는지 빠르게 찾을 수 있는 방법이 있을까?
예를 들면, (구간 1: 0~1.3, 구간 2: 1.3 ~5.4 ... 구간 100: 1286.4~1298.5)과 값 4.2가 주어졌을 때 4.2가 구간 2에 속한다는 것을 순차탐색을 안하고 바로 알 수 있나?
솔직히 구간 갯수가 많지 않아서 O(n)이라도 상관없을 것 같긴 한데, 1초에 수백번씩 호출하면 좀 문제생길것같아서 고민중
이분탐색이 보편적인 방법이야
그런가? 인덱싱(?)같이 미리 처리해놓는걸로 해결할 수 있는 부분이 아닌가
인덱싱을 해도 해쉬맵을 만들어도 인덱스 찾으려고 한번은 검색돌아야 하지 않니
그러네 감사
구간따라 상황따라 다르겠지만 속도만 쫒는다면 배열 천개만들어놓고 0-1은 인덱스0으로 1-2는 인덱스 1로 처리하는식으로 하면
o(1)임
예시따라 맹글어보면 배열0 은 1 . 배열1은 1,1.3 페어
요딴식으로 저장해노면 속도는 잡을 수 있음
대충 메모이제이션처럼 하란거지? 근데 C라 좀 구현하기 어렵긴 할듯
난 씨플 충이라 씨의 고충을 잘 모르것네 씨플은 구현 별루 안어려움 배열이 많아지는게 아쉬울 뿐이지
씨플이라도 한 구간에 3개 이상인 경우는 대응하기 어렵지 않나?
pair<구간번호, 벡터>로 배열 맹글고 벡터 순회하면서 input 이 요소보다 크면 구간번호값에 +1 씩 해주는 방향으로 생각하고있음
이제 퇴근이당 지하철에서 함 짜보께
https://godbolt.org/z/f68G7KE7a
종내 드럽고 스택경고도 뜬다.. 더 좋은방법있을거임
ㄹㅇ 좃같네
ㅋㅋㅋㅋㅋ ㅠㅠ
구간이 소수점 첫째자리에서 끊기면 10배하고 정수캐스팅해서 인덱싱하면 안될라나?